快速排序

来源:互联网 发布:ppk的算法 编辑:程序博客网 时间:2024/05/20 23:31

面试必备:

#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;}
0 0
原创粉丝点击