美文网首页
快速排序

快速排序

作者: DaSE_Bee | 来源:发表于2018-02-21 15:24 被阅读0次

    //一个便于理解但不是最优的快速排序算法c++实现。

    include <iostream>

    using namespace std;
    int tswap(int &a,int &b) //交换两个数
    {
    int s;
    s=a;
    a=b;
    b=s;
    return 0;
    }

    int qsort(int a[],int first,int tail)
    {
    int flag=first;
    int f=first;
    int t=tail;
    if(first>=tail)
    {
    return 0;
    }
    else
    {
    while(first<tail)
    {
    while(a[first]<a[flag]&&first<tail)//从左到右找到比key大的数
    {
    first++;
    }
    while(a[tail]>=a[flag]&&first<tail)//从右到左找到比key小的数
    {
    tail--;
    }
    tswap(a[first],a[tail]);//交换两数
    }
    tswap(a[flag],a[first]);//将key和较小数交换
    }
    qsort(a,f,first-1);
    qsort(a,first+1,t);
    return 0;
    }
    int main()
    {
    int a[]= {5,3,1,5,4,8};
    qsort(a,0,5);
    for(int i=0; i<6; i++)
    {
    cout<<a[i]<<endl;
    }
    return 0;
    }

    相关文章

      网友评论

          本文标题:快速排序

          本文链接:https://www.haomeiwen.com/subject/zdcotftx.html