快速排序-改进1

来源:互联网 发布:csgo玄学知乎 编辑:程序博客网 时间:2024/05/29 14:32

void quickSort(int a[],int l,int r)

{//使用数组模拟栈

   int i;

   int b[100] = {0};

   int j = 0;

   int k = r;

    b[j++] = r;

    b[j++] = l;

   while (j >= 0)

    {

        l = b[--j];

        r = b[--j];

       if ((l >= r)||(j < 0)||(r > k)||(l > k))//改进判断条件

        {

           continue;

        }

        i =partition(a,l, r);

       if (i-1 > r-i)

        {

            b[j++] = i-1;

            b[j++] = l;

            b[j++] = r;

            b[j++] = i+1;

        }

       else

        {

            b[j++] = r;

            b[j++] = i+1;

            b[j++] = i-1;

            b[j++] = l;

        }

    }

}


原创粉丝点击