快速排序法研究

快速排序法 是目前排序算法中性能最好的一种算法。
中心思想是。将待排数据分成两堆。保证第一堆的数据小于第二堆。
然后递归的对这两堆数据进行排序。

code by kula
//author kula
//email  [email protected]
#include<stdio.h>  

int portion(int   *sort_array,int   start,int   end)  
{  
    int   i=start;  
    int   j=end+1;  
    int   x=sort_array[start];  
    int   temp;  
    while(1)  
    {  
        while((sort_array[++i]<x)&&i<end);  
        while((sort_array[--j]>x)&&j>start);  
        if(i>=j)  
            break;  
        temp=sort_array[i];  
        sort_array[i]=sort_array[j];  
        sort_array[j]=temp;  
    }  
    sort_array[start]=sort_array[j];  
    sort_array[j]=x;  
    return j;
}

void quicksort(int* sort_array,int start,int end)  
{  
    if(start<end)  
    {  
        int middle=portion(sort_array,start,end);  
        quicksort(sort_array,start,middle-1);  
        quicksort(sort_array,middle+1,end);  
    }  
}  
  
void   main()  
{ 
    int i;
    int sort_array[]={1,4,5,7,223,344,122,34}; 
    quicksort(sort_array,0,7);
    for(i=0;i<8;i++) 
    {
        printf("%d ",sort_array[i]);
    }
    printf("\n");
}   

你可能感兴趣的:(C++,c,算法,J#,Gmail)