第乙個排序函式 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...