问答题 请给出快速排序的排序算法,并说明算法思路。【北京理工大学2006七、2(15/2分)】
【正确答案】正确答案:一趟快速排序的思想是由枢轴元素把待排序元素分成两部分,枢轴左面的元素不大于枢轴,枢轴右面的元素不小于枢轴。再对左右两部分分别进行快速排序。 int Partition(RecType R[],int 1,inth) //快速排序的一趟划分的算法 (//交换记录子序列R[1..h]中的记录,使枢轴元素到位并返回其所在位置 int i=l; j=h; //用变量i,j记录待排序元素首尾位置 R[0]=R[i]; //以子表的第一个元素作枢轴,将其暂存到记录R[0]中 x=R[i].key; //用变量x存放枢轴元素的关键字 while(icj) //从表的两端交替地向中间扫描 {while(i=x) j一一; R[i]=R[j]; //将比枢轴小的元素移到低端(不交换) while(i
【答案解析】