1. 程式人生 > >第2章 排序 | 第10節 計數排序練習題

第2章 排序 | 第10節 計數排序練習題

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節 計數排序練習題