迴圈

輸入數字

先做排序,再排個位數

個位數排序方式,採用radix sort的方法

(可於  c++->排序 內觀看)

輸出

 

#include <iostream>
#include <algorithm>

using namespace std;

void countSort(int arr[], int n)
{
    int output[n];
    int Rank[10] = {0};

 

 

    for(int i = 0; i<n; i++)
        Rank[arr[i]%10]++;

    for(int i = 1; i<10; i++)
        Rank[i] += Rank[i-1];

    for(int i = 0; i<n; i++)
    {
        output[Rank[arr[i]%10] - 1] = arr[i];
        Rank[arr[i]%10]--;
    }

    for(int i = 0; i<n; i++)
        arr[i] = output[i];
}

int main()
{
    int n;
    int arr[1000];
    while(cin >> n)
    {
        for(int i = 0; i<n; i++)
            cin >> arr[i];

        sort(arr, arr+n);

        countSort(arr, n);

        for(int i = 0; i<n; i++)
            cout << arr[i] << " ";
        cout << endl;
    }
}

arrow
arrow
    全站熱搜

    大神(偽) 發表在 痞客邦 留言(0) 人氣()