排序方法為 counting sort

 

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    int people, hi, lo;
    int grade_record[101], grade;

    while(cin >> people){
        hi = -1, lo = 101;
        memset(grade_record, 0, sizeof(grade_record));

        for(int i = 0; i<people; i++){
            cin >> grade;
            if(grade < 60 && grade > hi)
                hi = grade;
            else if(grade >= 60 && grade < lo)
                lo = grade;

            grade_record[grade]++;
        }

        int i;
        /* quite boring*/
        for(i = 0; i<=100; i++)
            if(grade_record[i]){
                cout << i;
                grade_record[i]--;
                break;
            }

        for(i = 0; i<=100; i++)
            while(grade_record[i]--)
                cout << " " << i;


        cout << endl;
        if(hi != -1)
            cout << hi << endl;
        else
            cout << "best case\n";

        if(lo != 101)
            cout << lo << endl;
        else
            cout << "worst case\n";
    }
}
 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大神(偽) 的頭像
    大神(偽)

    大神的世界

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