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

admin2013-07-12  57

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

选项

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

最新回复(0)