C 排序方法補充

2022-08-19 11:00:12 字數 1151 閱讀 9424

---恢復內容開始---

1.插入排序:

思想:當讀入乙個元素的時候,在已經排序好的序列中,搜尋它的正確位置,再放入讀入的元素。

但是,有乙個不可以忽略的問題是:在插入元素之前,應當先將它後面的語速後移一位,以保證插入位置的原有元素不被覆蓋。

例子:有8個數。

36 25 48 12 65 43 20  58

排序方案;

第0步:[36] 25 48 12 65 43 20 58

第一步:[25 36] 48 12 65 43 20 58

第二步:[25 36 48] 12 65 43 20 58

第三步:[12 25 36 48] 65 43 20 58

第四步:[12 25 36 48 65] 43 20 58

第五步:[12 25 36 43 48 65] 20 58

第六步:[12 20 25 36 43 48 65] 58

第七步:[12 20 25 36 43 48 58 65]

程式:

#includeusing

namespace

std;

intmain()

for(int i=0;i<=n;i++)

if(j!=i-1

) }}

for(int i=0;i)

}

2.桶排序:

細想:若待排序的值在乙個明顯有限範圍內時,可設計有限個有序桶,待排序的值裝入對應的桶(值可以為多個),桶號就是待排序的值,順序輸出各桶的值,將得到有序的數列。

例子:輸入n個0到100以內的整數,由小到大排序輸出。

輸入示例;

2 3 1 2 4 55 3 55 3 2

輸出示例:

1 2 2 2 3 3 3 4 55 55

程式;

#include#include

using

namespace

std;

intmain()

,n,k;

//memset(b,0,sizeof(b));

//將陣列全部變為零

cin>>n;

for(int i=1;i<=n;i++)

for(int i=0;i<=100;i++)

}}

排序演算法 補充

對於上次學習借鑑到的大師級的排序演算法,感概良多,從演算法執行的效率上來說,quicksort 不考慮普遍的最環情況,它的速隊的確是排序演算法中的佼佼者。這次的學習到的演算法包括了插入排序 直接插入,折半插入,希爾排序 選擇排序 堆排序 都是各有利弊。基本的演算法實現如下,因為遞迴使用的不是很好,同...

C 函式及類方法(待補充)

自定義函式的寫法 include using namespace std int sum int,int 函式原型,可以省略變數名,以分號結尾。int main int result sum 5,6 呼叫函式實現 cout the result is 標頭檔案作用 標頭檔案 h 裡預先寫好了函式原型...

C 函式及類方法(待補充)

自定義函式的寫法 1 include 2 using namespace std 3int sum int,int 函式原型,可以省略變數名,以分號結尾。4int main 59 10int sum int num1,int num2 11 標頭檔案作用 標頭檔案 h 裡預先寫好了函式原型和函式的真...