#include "StdAfx.h"
#include<iostream>
using namespace std;
void quick_sort(int array[], int start, int last)
{
int i = start;
int j = last;
int base = array[i];
if (i < j)
{
while (i < j)
{
while (i < j && array[j]>= base ){
j--;
}
while (i < j && base > array[i]){
i++;
}
if (i < j)
{
int temp = array[i];
array[i] = array[j];
//当左右两边遍历的时候,当右边遇到小于基准数的时候停下,
//当左边遇到大于基准数的时候停下,交换位置
array[j] = temp;
}
}
//把基准数放到i位置,此时基准数已经处于中间位置
array[i] = base;
quick_sort(array, start, i - 1);
quick_sort(array, i + 1, last);
}
}
int main()
{
int array[]={1,5,4,9,3,8,7,2,6};
int len=sizeof(array)/sizeof(int);
cout<<"The orginal array are:"<<endl;
for(int i=0; i<len -1; i++)
{
cout<< array[i] << " ";
}
cout<<endl;
quick_sort(array,0,len-1);
cout<<"The sorted array are:"<<endl;
for(int i=0; i<len-1; i++)
{
cout<< array[i] << " ";
}
cout<<endl;
return 0;
}
快速排序C++
最新推荐文章于 2022-03-06 19:55:39 发布