问答题 设有一个数组中存放了一个无序的关键字序列K 1 ,K 2 ,…,K n 。现要求将K n 放在将元素排序后的正确位置上,试编写实现该功能的算法,要求比较关键字的次数不超过n。
【正确答案】正确答案:int Partition(RecType K[],int m,int n){ //交换记录子序列K[1..n]中的记录,使枢轴记录到位,并返回其所在位置 //此时,在它之前(后)的记录均不大(小)于它 int i=m,j=n,K[0]=K[j],x=K[j].key; while(i =x)j一一; if(in为枢轴的一趟快速排序。以最后一个关键字为枢轴先从前向后再从后向前快速排序。
【答案解析】