原创 计数排序C++实现

2010-1-24 10:28 2374 6 6 分类: 软件与OS

#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;
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条