資料結構 計數排序

2021-09-07 09:51:34 字數 634 閱讀 1014

計數排序基於桶排序。

比如待排陣列 a[5]=; 那麼就需要建造 105(max)-100(min)+1=6 大小的臨時陣列,將這 5 個元素按照,值減 100(min) 作為下標儲存在臨時陣列中。如下圖所示:

* 計數排序

* @param

a *

@paramn

*/private

static

void jishu(int a, int

n)

if (a[i] >max)

}//將資料裝入桶中,每個桶的值代表該下標值在陣列**現的次數

int bucket = new

int[max - min + 1]; //

建桶for (int i = 0;i < n;i++)

//將桶倒出至原陣列中

int index = 0;

for (int i = 0;i < bucket.length;i++) }}

實現方式與演算法導論中不一樣,演算法導論中的方法還沒領悟= =,以後更新。

資料結構 計數排序

題目來自灰灰考研 counting sort基本思想 對於給定的輸入序列中的每乙個元素x,確定該序列中值小於x的元素的個數 一旦有了這個資訊,就可以將x直接存放到最終的輸出序列的正確位置上。它建立乙個長度為這個資料範圍的陣列c,c中每個元素記錄要排序陣列中對應記錄的出現個數。下面以示例來說明這個演算...

資料結構 計數排序

之前講到的插入 希爾 選擇 堆 冒泡 快速 歸併排序都屬於比較排序 涉及到兩個數的比較 接下來要講到一種非比較排序演算法 計數排序。1 什麼是計數排序 計數排序是一種非比較性質的排序演算法,元素從未排序狀態變為已排序狀態的過程,是由額外空間的輔助和元素本身的值決定的。計數排序過程中不存在元素之間的比...

資料結構 九 計數排序

1 演算法流程 1 求取待排序陣列a 的最大值 max 2 建立乙個新的陣列c max 1 用於統計陣列 a中的每個元素 a,小於等於 a的個數。3 根據小於等於a 的個數,來確定排序後,a在排序陣列中的位置,進行位置填充 2 實現 寫 需要注意事項 1 計數統計結束後,我們根據c a 的大小填充元...