演算法 一些線性排序演算法

2021-07-22 06:22:41 字數 693 閱讀 1496

一、計數排序

使用這個演算法有乙個前提,待排序的陣列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次氣泡排序後,排序結...