第2章 排序 | 第10節 計數排序練習題
阿新 • • 發佈:2018-05-19
write 計數 question max 數組 第2章 ret public 排序
對於一個int數組,請編寫一個計數排序算法,對數組元素排序。
給定一個int數組A及數組的大小n,請返回排序後的數組。
測試樣例:[1,2,3,5,2,3],6
[1,2,2,3,3,5]
-
計數排序
class CountingSort { public: int* countingSort(int* A, int n) { // write code here int min=A[0],max=A[0]; for(int i=1;i<n;i++) {if(A[i]<min) min=A[i]; if(A[i]>max) max=A[i]; } int k=max-min+1; int* B=new int[k](); //初始化為0 for(int i=0;i<n;i++) B[A[i]-min]++; int idx=0; for(int i=min;i<=max;i++) for(int j=0;j<B[i-min];j++) A[idx++]=i; delete []B; return A; } };
對於一個int數組,請編寫一個基數排序算法,對數組元素排序。
給定一個int數組A及數組的大小n,請返回排序後的數組。保證元素均小於等於2000。
測試樣例:[1,2,3,5,2,3],6
[1,2,2,3,3,5]
第2章 排序 | 第10節 計數排序練習題