加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

寻找无序数组中的第K大数

发布时间:2020-12-14 02:35:12 所属栏目:大数据 来源:网络整理
导读:利用快速排序的思想,其中K从1开始 int ?quicksort( int ?*?x?,? int ?l?,87); font-weight:bold; background-color:inherit">int ?r?,87); font-weight:bold; background-color:inherit">int ?k)?? {?? ???? if (l?==?r??k==1) return ?x[l];?? ???? int ?i?
利用快速排序的思想,其中K从1开始
  1. int?quicksort(int?*?x?,?int?l?,87); font-weight:bold; background-color:inherit">int?r?,87); font-weight:bold; background-color:inherit">int?k)??
  2. {??
  3. ????if(l?==?r?&&?k==1)return?x[l];??
  4. ????int?i?,?j?;??
  5. ????for(i=l-1?,?j=l;j<r;j++)??????
  6. ????????if(x[j]<x[r])std::swap(x[++i]?,?x[j]);??
  7. ????std::swap(x[++i]?,?x[r]);??
  8. ????if(k==(i-l+1))return?x[i];??
  9. ????if(k<=(i-l))return?quicksort(x?,?l?,?i-1?,?k);??
  10. ????if(k>(i-l+1))? }??

例如寻找5,2,6,3中的第3大数,排好序后变为2,3,5,故结果为5,可以利用上述函数cout<< quicksort(x,3)<<endl;
注意数组从0开始,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读