快速排序,好像不是很懂

来源:互联网 发布:搜索引擎优化bwysj 编辑:程序博客网 时间:2024/06/09 23:46
void quicksort(int *A, int begin, int end)
{
        int pivot;


        if(begin < end)
        {
                pivot = partition(A, begin, end);
                quicksort(A, begin, pivot - 1);
                quicksort(A, pivot + 1, end);
        }
}


int partition(int *A, int left, int right)
{
        int stand = A[left];


        while(left < right)
        {
                while(left < right && A[right] >= stand)
                {
                        right --;
                }
                if(left < right)
                {
                        A[left ++] = A[right];
                }


                while(left < right && A[left] <= stand)
                {
                        left ++;
                }
                if(left < right)
                {
                        A[right --] = A[left];
                }
        }
        A[left] = stand;
        return left;
}
原创粉丝点击