/*
快速排序
*/
#include <iostream>
using namespace std;
int *data;
int Partition(int first,int last)
{
int i=first,j=last,temp;
while (i<j)
{
while (i<j&&data[i]<=data[j]) j--; //右侧扫描
if(i<j)
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
i++;
}
while (i<j&&data[i]<=data[j]) i++; //左侧扫描
if(i<j)
{
temp=data[i];
data[i]=data[j];
data[j]=temp;
j--;
}
}
return i;
}
void QuickSort(int first,int last)
{
if(first>=last)return;
else
{
int p=Partition(first, last);
QuickSort(first, p-1);
QuickSort(p+1, last);
}
}
int main()
{
data=new int [8]{3,5,12,54,76,12,86,31};
QuickSort(0, 7);
for(int i=0;i<8;i++)
{
cout<<data[i]<<"\t";
}
cout<<endl;
}
C++ 数据结构——快速排序
最新推荐文章于 2022-05-21 22:05:45 发布