一、計數排序
使用這個演算法有乙個前提,待排序的陣列a,其所有的元素分布在區間[0,k],該演算法的時間複雜度為o(n+k),當k=o(n)時,執行時間為o(n),所以當k比較小的時候適合採用這個演算法
下面給出這個演算法實現的**
#include using namespace std;
void counting_sort ( int a, int k, int len ) ;
int b[100] = ;
// 初始化
for ( int i = 0; i < k; ++i )
// 統計計數
for ( int i = 0; i < len; ++i )
for ( int i = 1; i <= k; ++i )
for ( int i = len - 1; i >= 0; --i )
for ( int i = 0; i < len; ++i )
}int main()
; int len = sizeof(a) / sizeof(int);
counting_sort(a,9,len);
for ( int i = 0; i < len; ++i )
return 0;
}
二、基數排序
三、桶排序
C 一些排序演算法
氣泡排序 學語言要花大力氣學資料結構和演算法。using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for int m 0 m選擇排序...
記錄一些排序演算法
記錄一些排序演算法的c 插入排序o n 2 void insertsort int a a i 1 key 歸併排序o nlgn define max 101 void merge int a,int p,int q,int r else if i n1 1 else if j n2 1 void ...
一些常用演算法 排序
1.冒泡法 1 比較第乙個數和第二個數,若為逆序a 0 a 1 則交換,以此類推 直到第n 1個數和第n個數比較完為止 第一次氣泡排序,結果最大的數被安置在最後乙個元素位置上。2 對前n 1個數進行第二次氣泡排序,結果使次大的數被安置在n 1的位置上。3 重複上述過程,經過n 1次氣泡排序後,排序結...