本**用來測量分析氣泡排序、希爾排序、歸併排序 和快速排序在陣列大小不同的情況下的用時情況。
使用函式比較兩個陣列是否一致:
bool check(int*s, int*s2,int len)
s[k+gap] = temp;}}}}}
歸併排序
void gsort(int* s,int l, int r)
for(int t=0;t
快速排序
void qsort(int* a, int l, int r)
a[i] = x;
qsort(a, l, i-1);
qsort(a, i+1, r);
}}void isort(int a, int n)}}
氣泡排序
void bsort(int a, int n)
}if (flag==0)
break; }}
int main() {
srand(time(null));
for(int i=0; i
結果比較:
use = 1000 時:
use太小時,前面幾個演算法比較不出什麼差異,只有氣泡排序慢5ms
use = 10000 時:
use擴大十倍,algrightm 自帶的快速排序大約耗時一毫秒,自己寫的快速排序更快,但未明顯。插入排序與氣泡排序開始感覺到延遲。
use = 50000 時:
use = 99000 時:
總結:1.在陣列沒有規律時,插入排序比氣泡排序要快不少。
2.提供的sort方法雖然經過了很多優化,但是在普通的陣列排序時,速度可能會低於普通的快速排序演算法。
(以上演算法均出自作者原創,不能確保完全正確,如有不足之處望及時指出)
排序演算法 氣泡排序,歸併排序,快速排序
氣泡排序 屬於交換排序的一種。很好理解的交換排序是這樣的 for int i 0 i n i for int j i 1 j n j 這個演算法的邏輯是從頭到尾掃瞄元素,將這個元素和它後面的所有元素進行比較,如果有比它更小的,那就交換,最後交換的一定是最小的,然後元素指標i後移,再比較它後邊的所有元...
氣泡排序,快速排序,堆排序,歸併排序
1.氣泡排序 1 基本思想 從無序序列頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大 最小 的資料元素交換到了無序序列的隊尾,從而成為有序序列的一部分 下一次繼續這個過程,直到所有資料元素都排好序。演算法的核心在於 每次通過兩兩比較交換位置。選出剩餘無序序列裡最大 最小 的資料元素放到隊尾...
排序演算法 氣泡排序 快排 歸併排序
氣泡排序 bubble sort 也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。步驟 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同...