氣泡排序及其改進演算法

2021-08-21 13:45:03 字數 1119 閱讀 1910

第乙個排序函式 sort1() 為氣泡排序的典型實現,第二和第三個為改進後的排序函式

#include #include #define len 20000

double sort1(int *,int);

double sort2 (int *,int);

double sort3 (int *,int );

int main(int argc,char *argv)

//分別呼叫三種排序函式

spend1 = sort1(a,len);

spend2 = sort2(b,len);

spend3 = sort3(c,len);

//輸出排序的最後一百個

for(i = len-100; i < len; i++)

}//輸出消耗的時間

printf("sort1 spend %lf s\n",spend1);

for(i = len-100; i < len; i++)

}printf("sort2 spend %lf s\n",spend2);

for(i = len-100; i < len; i++)

}printf("sort3 spend %lf s\n",spend3);

return 0;

}double sort1 (int*a,int len)}}

//結束計時

end = clock();

//計算消耗的時間

spend = (double)(end - begin) / clocks_per_sec;

return spend;

}double sort2 (int*a,int len)}}

end = clock();

spend = (double)(end - begin) / clocks_per_sec;

return spend;

}double sort3 (int*a,int len)}}

end = clock();

spend = (double)(end - begin) / clocks_per_sec;

return spend;

}

氣泡排序及其改進

1.排序思想 氣泡排序也是非常簡單的排序演算法,易於理解。要點 1 也把陣列看作有序和無序部分,初始時將整個陣列視為無序 2 每次遍歷陣列中的無序部分,且兩兩比較,並將兩者中較大的元素置於後面一位,則一趟遍歷完成後,最大元素自然 沉到 無序部分的最後一位 3 減小無序部分的長度,迴圈第二步,直到陣列...

氣泡排序及其改進

氣泡排序作為最經典的演算法,雖然對大資料無用武之地。但是對於少量的資料,我們用氣泡排序,在時間複雜度上也是可以接受的,又因為它實現起來比較簡單,所以也經常的被人們使用。並且可以通過一些方法來改進最原始的氣泡排序,這種改進演算法的思路也有可取之處。前一兩天參加宜搜科技的筆試,就考到了氣泡排序。我當時就...

氣泡排序及其改進

1 比較相鄰的元素,前者大就交換 2 每對相鄰元素都比較 3 對所有元素都重複以上步驟 最後乙個元素不用 這個程式是正確的,可以將乙個陣列公升序排列,但如果給的陣列已經是公升序排列 例如a 這個時候再執行len 1趟就會浪費時間,所以給出了如下改進 define crt secure no warn...