写出快速排序的非递归算法。

admin2017-11-14  7

问题 写出快速排序的非递归算法。

选项

答案设对记录R[1..n]进行快速排序,要求用非递归算法。利用一个包含有low和high两个整数成员的记录数组stack[]作为栈,low和high成员分别指示某个子文件的首、尾记录的下标号。算法如下: void quicksort(SeqList R,int n){//设待排序记录放在R[1..n]中,下标从1开始 int i,j,low,high,top=0; struct{ int low,high; }stack[Max]; //Max为一个大于n的常量 RecType temp; top=1;stack[top].low=1;stack[top].high=n;//入栈 while(top>0){ //栈非空,则取出一个子文件进行划分 low=stack[top].low:high=stack[top].high;top一一;//出栈 i=low;j=high;temp=R[i]; d0{ while(itemp.key)j--; if(i
解析
转载请注明原文地址:https://kaotiyun.com/show/L3Ri777K
0

最新回复(0)