码迷,mamicode.com
首页 > 其他好文 > 详细

随机快排

时间:2015-10-09 16:49:54      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
int PARTITION(int*A,int p,int r)//分治
{
    int x=A[r-1];
    int i=p-1;
    int j=p;
    int temp;
    while(j<=r-1)    
    {
        if(A[j-1]<=x)
        {
            i++;        
            temp=A[i-1];
            A[i-1]=A[j-1];
            A[j-1]=temp;
        }
        j++;
    }
    temp=A[i];
    A[i]=A[r-1];
    A[r-1]=temp;
    return i+1;
}
int RANDOMIZE_PARTITION(int*A,int p,int r)//随机分治
{
    int temp;
    int i=random()%(r-p+1)+p;
    temp=A[i-1];
    A[i-1]=A[r-1];
    A[r-1]=temp;
    return PARTITION(A,p,r);
}
void RANDOMIZE_QUICKSORT(int*A,int p,int r)//随机快排
{    
    int q;
    if(p<r)
    {
        q=RANDOMIZE_PARTITION(A,p,r);
        RANDOMIZE_QUICKSORT(A,p,q-1);
        RANDOMIZE_QUICKSORT(A,q+1,r);
    }
}
int main()
{    
    int test=1000;
    int array[test];
    int i=0;
    while(i<test)
    {
        array[i]=random()%(test*100);
        i++;
    }
    RANDOMIZE_QUICKSORT(array,1,test);
    i=0;
    while(i<test)
    {
        printf("%d\n",array[i]);
        i++;
    }
    printf("\n");
    return 0;
}

 

随机快排

标签:

原文地址:http://www.cnblogs.com/knowanddo/p/4864387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!