ACM从零开始---电子科大POJ "快速排序算法"

#include<stdio.h>

void quicksort(int *array,int left,int right)
{
    if(left<right)
    {
        int temp=array[left];
        int low=left;
        int high=right;
        while(low<high)
        {
            while(low<high&&array[high]>temp)
            {
                high--;
            }

            array[low]=array[high];

            while(low<high&&array[low]<temp)
            {
                low++;
            }

            array[high]=array[low];
        }
        array[low]=temp;
        quicksort(array,left,low-1);
        quicksort(array,low+1,right);
    }
}


int main()
{
    int array[10]={0,2,1,4,3,5,8,7,6,9};
    int i,left=0,right=9;

    printf("The before Order:\n");
    for(i=0;i<10;i++)
        printf("%d ",array[i]);

        printf("\n");

    quicksort(array,left,right);

    printf("The after Order:\n");
    for(i=0;i<10;i++)
        printf("%d ",array[i]);
    return 0;
}


运行结果图:





转载请注明作者:小刘

你可能感兴趣的:(快速排序,ACM,排序算法)