快速

//找一个数,大的移到右边,小的移到左边 
#include <iostream>
using namespace std;
void b(n[5],i,j){
    if(i<j)
    {
        int l=i,r=j;
        int m=a[i];
        while(l!=r){
            while((m<=a[r])&&(l!=r))
            {
                r--;
            }
            while((m>=a[l])&&(l!=r))
            {
                l++;
            }
            if(l<r){
                swap(a[l],a[r]);
            }
        }
        swap(a[i],a[l]);
        b(n,i,l+1);
        b(n,l+1,j);
    }
}
int main(int argc, char** argv) 
{
    int a[]={4,2,1,8,5};
    b(n,0,5);
    for(int k=0;k<5;k++)
    {
        cout<<a[k]<<" ";
    }
    return 0;
}

 

posted @ 2024-04-20 14:55  hanxuyao  阅读(52)  评论(0)    收藏  举报