快排 快速排序

来源:互联网 发布:windows正在下载更新0 编辑:程序博客网 时间:2024/05/05 09:25

快排
快速排序

/*description:快速排序参考<<编程珠玑>>author:Jasondate:20160517*/#include<stdio.h>#include<iostream>using namespace std;int show_data(int data[],int len){    cout<<"-----------------------"<<endl;    for (int i=0;i<len;i++)    {        cout<<data[i]<<"\t";    }    cout<<endl;    return 0;}int my_qsort(int data[],int l,int u){    if (l>=u)    {        return 0;    }    int t=data[l];    int i=l;    int j=u;    while(i<j)    {        while(i<=u && data[i]<=t)        {            i++;        }        while (data[j]>t)        {            j--;        }        if (i>j)//必须        {            break;        }        swap(data[i],data[j]);      }    //排序后   j=n  i=n+1    data[j]<t  data[i]>t    swap(data[l],data[j]);//把比较变量放中间,已经排好序,不需要变动    my_qsort(data,l,j-1);    my_qsort(data,j+1,u);    return 0;}int main(){    int data[]={31,-41,59,26,-53,58,97,-93,-23,84,33,22};    int len=sizeof(data)/sizeof(data[0]);    cout<<"len="<<len<<endl;    show_data(data,len);    my_qsort(data,0,len-1);    show_data(data,len);    return 0;}

结果
这里写图片描述

1 0
原创粉丝点击