C++ QT 的快速排序 几年之前写的 现在复习下 呵呵

来源:互联网 发布:jeckins pipeline知乎 编辑:程序博客网 时间:2024/06/07 13:49

#include <QtCore/QCoreApplication>

 #include "iostream"

using namespace std;
void sort(int shuzu[],int left,int right)
{
int i(left),j(right),middle(0),tmp(0);
middle=shuzu[(qrand()%(right-left+1))+left];
do{
while((i<right)&&(shuzu[i]<middle))
i++;
while((j>left)&&(shuzu[j]>middle))
j--;
if(i<=j)
{
tmp=shuzu[j];
shuzu[j]=shuzu[i];
shuzu[i]=tmp;
i++;
j--;
}
}while(i<=j);//如果两边扫描的下标交错,就停止(完成一次)
if(left<j)//如果左边还有值
sort(shuzu,left,j);
if(i<right)//如果右边还有值
sort(shuzu,i,right);
}

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int data[]={10,9,8,7,6,5,4};
const int count(6);
cout<<"Dada";
sort(data,0,count);
for(int i(0);i!=7;++i)
{
cout<<data[i]<<" ";
}

// return 0;
return a.exec();
}
原创粉丝点击