三個排序演算法,以時間為計算單位,對比它們的使用效率;為了準確對比,都使用了相同的陣列;但是由於每次產生的隨機數組都不同,導致排序遍歷與交換的次數也不同;所以這裡僅針對每一次的結果的對比,具體一定的隨機性,但總的來說還是會趨近每個演算法自身的時間複雜度。
其中的乙個結果如下
selectsort:**********==
bubblesort:**********===
insertsort :**********
each sort used time: 12 13 10
**如下:
#include#include#include#define number 10000
double selectionsort(int ,int);
double bubblesort(int ,int);
double quicksort(int ,int,int);
double insertsort(int ,int);
void showchart(int ,int);
void display(int ,int);
int main()}}
end = clock();
cost = (double)(end - begin) / clocks_per_sec;
//display(num,count);
return cost;
}double insertsort(int num,int count)
{ clock_t begin, end;
double cost;
int i,j,temp;
begin = clock();
for(i = 1;i < count;i++)
{temp=num[i];
j=i-1;
while((j>=0)&&(temp**寫得沒有什麼可觀賞價值,有什麼不足之處歡迎指出。
氣泡排序 選擇排序和插入排序
氣泡排序 思路 將相鄰的兩個數比較,將較小的數調到前頭 有n個數就要進行n 1趟比較,第一次比較中要進行n 1次兩兩比較,在第j趟比較中,要進行n j次兩兩比較。依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放...
氣泡排序和插入排序,選擇排序
插入排序原理 對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序核心 假設第乙個元素排好,之後的元素對排好的部分從後向前比較並逐一移動。選擇排序 按第乙個元素為基礎,遍歷所有元素,找出最小值,然後調換 公升序 include includevoid embed int a,in...
氣泡排序 選擇排序和插入排序
一 氣泡排序 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,直至最終完成排序。氣泡排序是穩定的。演算法時間複雜度是o n 2 二...