分治法解决选择问题——找出第i小的元素

给出一组数据,返回第i小的元素,最常规的思路是遍历找,或者排好序以后返回等,这里介绍用分治法解决,用到以前快排里的一个函数partition,为了把数组分红两部分,A[p,q-1]的元素都小于主元q, A[q+1,r]的元素都大于q, 因此只要比较i这个位置要落在哪一边就行了 伪代码以下:ios int Select(int *A, int p, int r, int i)//对数组A[p,r]返
相关文章
相关标签/搜索