#include<iostream>
using namespace std;
void Swap(int &p,int &q){
int temp;
temp = p;
p = q;
q = temp;
}
int Partition(int InputArray[],int nLow,int nHigh){
int i = nLow+1;
int j = nHigh;
bool direction = false;
while (i <= j)
{
if(direction){
if (InputArray[i] > InputArray[nLow])
{
Swap(InputArray[nLow],InputArray[i]);
direction = false;
}
i++;
}else
{
if (InputArray[j] < InputArray[nLow])
{
Swap(InputArray[nLow],InputArray[j]);
direction = true;
}
j--;
}
}
return i;
}
void QuickSort(int InputArray[],int nLow,int nHigh){
if (nLow < nHigh)
{
int index = Partition(InputArray,nLow,nHigh);
QuickSort(InputArray,nLow,index-1);
QuickSort(InputArray,index,nHigh);
}
}
int main(){
int array[11] = {15,7, 3, 19, 4, 63, 2, 99, 18, 1, 25};
QuickSort(array, 0, 10);
for(int i = 0; i < 10; i++)
{
cout << array[i] << " ";
}
cout<<endl;
return 0;
}
C++快速排序算法
最新推荐文章于 2023-11-13 22:29:57 发布