您的位置:首页 > 其它

快速排序

2015-08-11 19:36 288 查看
面试必备:

#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;

void print(int a[], int n){
for(int j= 0; j<n; j++){
cout<<a[j] <<"  ";
}
cout<<endl;
}

void quickSort( int l, int r, int s[])
{
if (l< r)
{
int i = l, j = r, x = s[l];
while (i < j)
{
while(i < j && s[j]>= x) // 从右向左找第一个小于x的数
j--;
if(i < j)
s[i++] = s[j];
print(s,10);
while(i < j && s[i]< x) // 从左向右找第一个大于等于x的数
i++;
if(i < j)
s[j--] = s[i];
}
s[i] = x;
quickSort(l, i - 1,s); // 递归调用
quickSort(i + 1, r,s);
}
}

int main(){
int a[10] = {3,1,5,7,2,4,9,6,10,8};
cout<<"初始值:";
print(a,10);
quickSort(0,9,a);
cout<<"结果:";
print(a,10);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: