桶排序 c++ 实现

来源:互联网 发布:姑苏城外寒山寺 知乎 编辑:程序博客网 时间:2024/05/16 20:29
#include <iostream>#include<cstdlib>using namespace std;void sortAges(int ages[],int length){    if(ages==NULL||length<=0){        return;    }    const int oldestAge=99;    int timesofAge[oldestAge+1];    for(int i=0;i<=oldestAge;i++){        timesofAge[i]=0;    }    for(int i=0;i<length;++i){        int age=ages[i];        if(age<0||age>oldestAge)            throw "Invalid Input";        timesofAge[age]++;    }    int index=0;    for(int i=0;i<=oldestAge;i++){        for(int j=0;j<timesofAge[i];j++){            ages[index]=i;            index++;        }    }}int main() {cout  << "test\n";int data[200];for(int i=0;i<200;i++){    data[i]=rand()%100;    cout << data[i]<<'\t';}sortAges(data,200);cout << endl;for(int i=0;i<200;i++){    //data[i]=rand()%100;    cout << data[i]<<'\t';}//int num=rand()%100;//cout << num;return 0;}


测试结果如下:

test8386771593358692492162279059632640267236116867298230622367352922258696793561142297321198437982415701326918056736270968152584273654629135724958245146734644350878767888843515499326076683912268694399570347867197217925256180864165894419402931179771817592767569753866568319242871322931970688154049962318454651215579886428415093034642414875643912765593632513728757742158952937359318284311282901122335567889111111121313141415151517171818191919192121212122232324242424252626262627272727282828282829292929292929293031323232343434353535363636373737393940404041414243434344454546464949505051515152535455565656565657585859596062626263646464656565676767676767686868697070707071717273737475757676777878798080818182828383848484868686868687878888899091919292939393939495959596969797979899



0 0