幾種常用的排序方法6 計數排序

2022-08-11 11:39:08 字數 405 閱讀 2488

計數排序

計數排序不同於前面所有的排序,它並不是一種比較排序。

計數排序假設輸入元素中每乙個都是介於0到k之間的整數,計數排序執行時間是o(n);

計數排序的基本思想是:對每乙個輸入的元素x,統計出小於x的元素個數,然後可以把x直接放到輸出陣列中。例如有5個元素小於x,那麼x就是陣列中第6個元素b[5]。

1

void counting_sort(int * a, int * b,int n, int

k)2

8for(int j = 0; j < n; j++)912

for(int i = 0; i < k; i++)

1316

for(int j = 0; j < n; j++)17

21 }

幾種常用的排序方法

幾種常用的排序方法 1.氣泡排序 氣泡排序演算法的運作如下 比如按從小到大排列 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作第一步中的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的...

幾種常用的排序方法

1 氣泡排序,原理 依次比較相鄰的兩個值,如果後面的比前面的小,則將小的元素排到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。因為是兩個相鄰的數進行比較,剛開始進行第一輪比較時總共進行6次比較,為陣列長度減一。經過第一輪的比較能夠將陣列中最大的那個數找出且放到最後一位,此時進行第二輪比較原...

排序演算法 6 計數排序

不知道為什麼,突然編輯器不支援顏色豐富的intellij idea直接複製了,博主有點沮喪,因此我先用的形式展示並分析,然後在最後會將全部 呈上 排序思想 在乙個陣列中,對於每乙個資料,都統計有多少個數字小於它,就能反應出它當前所在的位置 比如 0,1,1,2 這個陣列中,0 就有0個元素小於它,2...