sort快速排序法

//sort快速排序法
#include<iostream>
#include<algorithm>
using namespace std;
void Quick(int k[],int s,int t)
{
    int i,j;
    if(s<t)
    {
        i=s;//0表示第一个位置
        j=t+1;//j表示第n+1个位置
        while(1)
        {
             do i++;
            while(!(k[s]<=k[i]||i==t));
            do j--;
            while(!(k[s]>=k[j]||j==s));
            if(i<j)
                swap(k[i],k[j]);
            else
                break;
        }
        swap(k[s],k[j]);
        Quick(k,s,j-1);
        Quick(k,j+1,t);
    }
}
void QuickSort(int k[],int n)
{
    Quick(k,0,n);
}
int main()
{
    int k[10],k1[10],i;
    for(i=0;i<10;i++)
    {
        scanf("%d",&k[i]);
        k1[i]=k[i];
    }
    cout<<"编写algorithm算法排序:"<<endl;
    QuickSort(k,9);
    for(i=0;i<10;i++)
        printf("%d ",k[i]);
    printf("\n");
    cout<<"直接调用algorithm函数库排序:"<<endl;
    sort(k1,k1+10);
    for(i=0;i<10;i++)
        printf("%d ",k[i]);
    printf("\n");
    return 0;
}

 

posted @ 2012-09-10 17:47  myth_HG  阅读(241)  评论(0编辑  收藏  举报