非比較排序 計數排序 基數排序

2021-08-11 12:01:27 字數 1448 閱讀 5091

利用雜湊的思想,直接定值法。開闢最大值到最小值範圍的陣列,把待排序陣列裡的資料取模後在新陣列對應的位置進行標記,新陣列裡存的值是引用計數,統計重複的個數,下標加上最小值為對應舊資料的大小。 

利用雜湊的思想,先對個位排序;個位有序後,在對十位排序;十位有序後再對更高位排序,把最大數的位數排完,整個序列就有序了。 

如對個位排序

對每一位統計的方法是一樣的, 然後統計基數 ,對每乙個基數字用對個位排序的方法進行排序。

void

radixsort

(int* a, size_t n)

;//統計同一位上相同的資料出現的次數

int start[10] = ; //統計同一位上不相同的資料在陣列上的第乙個起始位置

int base = 10;

int range = 1;

for (int i = 1; i < n; i++) }

int* tmp = new

int[n];

base = 1;

for (int j = 0;jfor (int i = 0; i < n; i++)

for (int i = 1; i < n; i++)

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

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

base *= 10;

} delete tmp;

}

o(n*基數)

只能對正整數排序

非比較排序2 基數排序

一 基數排序 穩定排序 按位排序 從低位 個位 到高位,取序列中元素相應位數字計數排序 c 供radixsort用的計數排序 void countsort1 vector sequence,vectorvec digit,int max k 9 void radixsort vector seque...

非比較排序 計數排序

計數排序 count sort 是乙個非基於比較的排序演算法,該演算法於1954年由 harold h.seward 提出。它的優勢在於在對一定範圍內的整數排序時,它的複雜度為 n k 其中k是整數的範圍 快於任何比較排序演算法。計數排序的思想類似於雜湊表中的直接定址法,在給定的一組序列中,先找出該...

計數排序 非比較排序

1.統計相同元素出現的個數 2.根據統計結果將序列 到原來的序列中 整體思路如下圖 判斷最大最小值的差值 int a newint count 開空間 memset a,0 sizeof int count 記得將原空間清空 for int i 0 i n i int j 0 int q 0 whi...