//直接插入排序,演算法簡潔,容易實現,時間複雜度o(n2),但較穩定,在基本有序和size很小
//時是最好的排序方法
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#define size 10001
main()
end=clock();
for(i=1;i//希爾排序,屬於插入排序,時間效能比較好,但不穩定
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#define size 10001
shellinsert(int num[size],int dk)
}main()
if(i<=m)
for(;i<=m;i++,k++)
tr[k]=sr[i];
if(j<=n)
for(;j<=n;j++,k++)
tr[k]=sr[j];
}msort(int sr[size],int tr1[size],int s,int t)
}main()
num[s]=rc;
}main()
end=clock();
for(i=1;i//氣泡排序,屬於借助交換進行排序的方法,時間複雜度為o(n2)
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#define size 10001
main()
end=clock();
for(i=1;i//折半插入排序,屬於簡單排序,較之直接插入排序減少了關鍵字比較的次數,而移動的次數不變
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#define size 10001
main()
end=clock();
for(i=1;i//二路插入排序,屬於簡單排序,較之折半插入排序又減少了記錄的移動次數,約為pow(n,2)/8
//但缺點是要付出多一倍的儲存空間,並且當num[1]的元素為最小或最大,就完全失去優越性
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#define size 10000
main()
else
temp[(index+1)%size]=num[i];
break;}}
}}for(i=0;i以下兩種方法都用於記錄所佔空間較大時,因為他們都採取了以修改指標來代替移動記錄
//表插入排序,屬插入排序,該方法的時間複雜度為o(n2)
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#define size 10001
void tablesort(int num[size],int temp[size])
else if(num[i]<=num[temp[0]])
else
indexpr=index;}}
}}void arrange(int num[size],int temp[size])
node;
distribute(node array[size],int i,int f[radix],int e[radix])
array[size-1].next=0;
for(i=0;iend=clock();
for(i=array[0].next;i;i=array[i].next)
printf("%d/n",array[i].keys[0]);
printf("time:%.20f",(end-start)/clk_tck);
getch();
}
幾種常見的排序方法。
氣泡排序 氣泡排序是每次都從第乙個元素開始,到最後的k 每迴圈完一次,最後乙個元素位置固定。include include int main void for i 0 i n 1 i k for i 0 i n i return 0 選擇排序 選擇排序每一次迴圈玩從正數的第i個元素位置確定。incl...
幾種常見的排序方法
氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。以4,2,3,1為例,第一次迴圈4與2比較...
幾種常見的排序演算法總結
所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序演算法,就是如何使得記錄按照要求排列的方法。排序演算法在很多領域得到相當地重視,尤其是在大量資料的處理方面。乙個優秀的演算法可以節省大量的資源。在各個領域中考慮到資料的各種限制和規範,要得到乙個符合實際的優秀...