您的位置:首页 > 其它

快速排序-改进1

2013-08-09 16:36 246 查看
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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: