非递归快速排序问题

著名的快速排序算法对于计算机专业的学生已不陌生,算法是递归实现的。请按照快速排序的思想,设计一个非递归的(即迭代的)快速排序算法。

void QuickSort(int s[],int first,int end)
{
int i=-1;
int j,k;
int fuzhu;
int zhan[999][2];
i++;
zhan[i][0]=first;
zhan[i][1]=end;
first=zhan[i][0];
end=zhan[i][1];
i--;
j=first;
k=end;

while(i>=0)
{
//一次划分
while(first<end){
while(first<end&&s[first]<=s[end]){ end--;}
if(first<end) s[first]交换s[end];
while(first<end&&s[first]<=s[end]){first++;}
if(first<end) { s[first]交换s[end];}
}
//入栈
i++;
zhan[i][0]=first+1;
zhan[i][1]=k;
i++;
zhan[i][0]=j;
zhan[i][1]=first-1;

//退栈
first=zhan[i][0];
end=zhan[i][1];
j=first;
k=end;
i--;
while(first>end)
{first=zhan[i][0];
j=first;
end=zhan[i][1];
k=end;
i--;}
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值