快速排序算法中,如何选取一个界值(又称为轴元素),影响着快速排序的效率,而且界值也并不一定是被排序序列中的一个元素。例如,我们可以用被排序序列中所有元素的平均值作为界值。编写算法实现以平均值为界值的快速排序方法。

admin2012-06-26  53

问题 快速排序算法中,如何选取一个界值(又称为轴元素),影响着快速排序的效率,而且界值也并不一定是被排序序列中的一个元素。例如,我们可以用被排序序列中所有元素的平均值作为界值。编写算法实现以平均值为界值的快速排序方法。

选项

答案int partition(RecType r[],int low,int high){ int i=low,j=high,avg=0; for(;i<=high;i++) avg+=R[i].key; i=low; avg=avg/(high—low+1); temp=RDow3; while(i=avg)j--; if(i
解析 保存划分的第一个元素。以平均值作为枢轴,进行普通的快速排序,最后枢轴的位置存入已保存的第一个元素,若此关键字小于平均值,则它属于左半部,否则属于右半部。
转载请注明原文地址:https://kaotiyun.com/show/qyxi777K
0

最新回复(0)