#include <algorithm>
#include <iostream>
#include <cstdlib>
using namespace std;
void StatSortNum(int data[], int length) {
if(NULL==data || length ==0)
return;
int HASHSIZE=11;
int * hash= new int[HASHSIZE];
for(int index=0;index < HASHSIZE; index ++)
hash[index]=0;
//stat number
for(int index=0;index
hash[data[index]-10]++;
}
//sort data and write to data
//output the number and its times
for(int index=0;index < HASHSIZE; index ++) {
if(hash[index] >0) {
cout <<(index+10) <<" has "<< hash[index] <<endl;
}
}
int currentpos=0;
for(int hashindex=0; hashindex< HASHSIZE; hashindex++ ) {
for(int dataindex=0; dataindex < hash[hashindex]; dataindex++ ){
data[currentpos++]=(hashindex+10);
}
}
}
void ToString(int data[],int len) {
if(NULL==data || len ==0)
return;
for(int index=1; index
cout << data[index] <<endl;
}
return;
}
void GenNum(int data[]){
srand((int)time(0));
for(int i=0;i<50;i++){
data[i]=rand()A+10; //[10,50]
}
return;
}
int main(int argc, char** argv) {
int data[50];
//generate random data
GenNum(data);
//display sorted data and its number
StatSortNum(data,sizeof(data)/sizeof(int));
//display the sorted result
ToString(data,sizeof(data)/sizeof(int));
return 0;
}