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