题目内容
(请给出正确答案)
[主观题]
写出非递归调用的快速排序算法。
提问人:网友zhanglietx
发布时间:2022-01-06
下面是一个快速排序的逆归算法。为了避免最坏情况,取基准记录pivot采用从lelt,right和中取中间值,并交换到low位置的办法。数组A存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。
(1)实现三者取中子程序mediancy(A,left,right);
(2)改写QuickSort算法,不用栈消去第二个递归调用QuickSort(A,pivotPos+1,right);
(3)继续改写QuickSort算法,用栈消去剩下的递归调用。
已知Ackermann函数定义如下:
①写出计算Ack(m,n)的递归算法,并根据此算法给出出Ack(2,1)的计算过程。
②写出计算Ack(m,n)的非递归算法。
下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。【北京交通大学2005七、3(6分)] define n 10 int sDlit(int a[hi,int low,int high) {int j,k,x; k=low:J=high;x=a[k]; while(k<j) f while(a[j]>=x&&k<j)j一一; if(k<j) (a[k]=a[j]; k++} while (a[k]<=x&&k<j) k++;
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!