---恢復內容開始---
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]
程式:
#includeusingnamespace
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#includeusing
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 裡預先寫好了函式原型和函式的真...