#include <iostream>
using namespace std;
class countsort
{
public:
countsort(){};
~countsort()
{
delete[] a;
};
void input();
void output();
void count_sort();
private:
int *a;
int leng;
int k;
int getmax();
};
void countsort::count_sort()
{
int *c=new int[k+1];
int *b=new int[leng];
for(int i="0";i<k+1;i++)
{
c=0;
}
for(int i="0";i<leng;i++)
{
c[a]++;
}
for(int i="1";i<k+1;i++)
{
c+=c[i-1];
}
for(int i="leng-1";i>=0;i--)
{
b[c[a]-1]=a;/*从0开始,固减1*/
c[a]--;
}
for(int i="0";i<leng;i++)
{
a=b;
}
delete[] b;
delete[] c;
}
int countsort::getmax()
{
int max="a"[0];
for(int i="1";i<leng;i++)
{
if(max<a)
{
max=a;
}
}
return max;
}
void countsort::input()
{
cout<<"请输入参加排序整数的个数\n";
cin>>leng;
a=new int[leng];
for(int i="0";i<leng;i++)
{
cout<<"请输入第"<<i+1<<"个整数\n";
cin>>a;
}
k=getmax();
}
void countsort::output()
{
cout<<"现在数组中的数字分别为:\n";
for(int i="0";i<leng;i++)
{
cout<<a<<"\t";
}
cout<<endl;
}
int main()
{
countsort test;
test.input();
test.output();
cout<<"排序中......\n";
test.count_sort();
cout<<"完成!\n";
test.output();
return 0;
}
文章评论(0条评论)
登录后参与讨论