对固定的数组进行快排并输出结果.
基于 严蔚敏 的数据结构.
Partition()函数对数组进行一趟排序,使用递归对整个数组进行快排.
#include<iostream>
using namespace std;
int main()
{
int number[8] = {49 , 38 ,65 , 97 ,76 ,13 ,27 ,49};
void QSort(int [] , int low , int high);
int Partition(int [] , int , int);
QSort(number , 0 , 7 );
//cout<<lows<<endl;
int a=0;
while(a <=7)
{
cout<<number[a]<<" ";
a++;
}
cin>>a;
return 0;
}
int Partition(int number[] , int low ,int high)
{
int pivotkey = number[low];
while(low < high)
{
while(low < high && number[high] >= pivotkey) --high; //while
{
int temp = number[high];
number[high] = number[low];
number[low] = temp;
}
while(low < high && number[low] <= pivotkey) ++low; //while
{
int temp = number[high];
number[high] = number[low];
number[low] = temp;
}
}
return low;
} //Partition
void QSort(int number[] , int low , int high)
{
if(low < high)
{
int pivotloc = Partition(number , low ,high);
QSort(number ,low , pivotloc-1 );
QSort(number ,pivotloc+1 , high);
}
}

被折叠的 条评论
为什么被折叠?



