原创 快速排序C++实现

2010-1-24 10:15 2651 6 6 分类: 软件与OS


#include <iostream>
using namespace std;
class quick
{
 public:
  quick();
  ~quick();
  void quick_sort();
  void output();
 private:
  int *data;
  int leng;
  void quicksort(int p,int r);
  int partition(int p,int r);
  void exchange(int &a,int &b);


};
void quick::exchange(int &a,int &b)
{
 int temp="a";
 a=b;
 b=temp;
}
int quick::partition(int p,int r)
{
 int x="data"

;
 int i="p-1";
 int j="r"+1;
 while(1)
 {
  do
  {
   j--;
  }while(data[j]>x);
  do
  {
   i++;
  }while(data<x);
  if(i<j)
  {
   exchange(data,data[j]);
  }
  else
  {
   return j;
  }
 }
}
void quick::output()
{
 cout<<"现在数组中的数字分别为:\n";
 for(int i="0";i<leng;i++)
 {
  cout<<data<<"\t";
 }
 cout<<endl;
}
void quick::quicksort(int p,int r)
{
 if(p<r)
 {
  int q="partition"(p,r);
  quicksort(p,q);
  quicksort(q+1,r);
 }
}
void quick::quick_sort()
{
 quicksort(0,leng-1);
}
quick::~quick()
{
 delete[] data;
}
quick::quick()
{
 cout<<"请输入您需要排序的数字:\n";
 cin>>leng;
 data=new int[leng];
 for(int i="0";i<leng;i++)
 {
  cout<<"请输入第"<<i+1<<"个数:\n";
  cin>>data;
 }
}
int main()
{
 quick test;
 test.output();
 cout<<"排序中......\n";
 test.quick_sort();
 cout<<"排序完成!\n";
 test.output();
 return 0;
}

PARTNER CONTENT

文章评论0条评论)

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