当前位置: 首页 > news >正文

rar在线解压网站微软bing搜索引擎

rar在线解压网站,微软bing搜索引擎,做直播平台网站赚钱吗,网页制作开发文章目录 QuestionIdeasCode Question 给定一个长度为 n 的整数数列,以及一个整数 k ,请用快速选择算法求出数列从小到大排序后的第 k 个数。 输入格式 第一行包含两个整数 n 和 k 。 第二行包含 n 个整数(所有整数均在 1∼109 范围内&…

文章目录

  • Question
  • Ideas
  • Code

Question

给定一个长度为 n
的整数数列,以及一个整数 k
,请用快速选择算法求出数列从小到大排序后的第 k
个数。

输入格式
第一行包含两个整数 n
和 k

第二行包含 n
个整数(所有整数均在 1∼109
范围内),表示整数数列。

输出格式
输出一个整数,表示数列的第 k
小数。

数据范围
1≤n≤100000
,
1≤k≤n
输入样例:
5 3
2 4 1 5 3
输出样例:
3

Ideas

Code

// 快排步骤(O(nlgn)):
// 1.寻找分界点x,a[l + r >> 1]
// 2.划分区间,使得左边均<=x,右边均>=x
// 3.递归左右两边
// 快速搜索步骤(O(n))
// 当进行到第2步时,左区间严格<=右区间,所以第k小的数要么在左区间,要么在右区间,
// 只需要递归一边即可,这由k与左区间的元素个数有关#include <iostream>using namespace std;const int N = 1E5 + 10;
int a[N];int quick_choose(int *a, const int& l, const int& r, const int& k)
{if (l >= r) return a[l];int x = a[l + r >> 1];int i = l - 1, j = r + 1;while(i < j){do i ++; while(a[i] < x); // 快排左边寻找a[i] >= xdo j --; while(a[j] > x);if (i < j) swap(a[i], a[j]);}int sl = j - l + 1;if (k <= sl) return quick_choose(a, l, j, k); // 左边区间的数目else return quick_choose(a,j + 1, r, k - sl);
}
int main()
{int n, k;scanf("%d%d", &n, &k);for (int i = 0; i < n; i ++) scanf("%d", &a[i]);cout << quick_choose(a, 0, n - 1, k) << endl;return 0;
}
http://www.dinnco.com/news/13353.html

相关文章:

  • 吉林大学建设工程学院网站广西疫情最新消息
  • 公司网站搜索引擎优化网址申请注册
  • 网站秒收录工具如何在百度上做产品推广
  • 深圳外贸seo网站推广深圳英文站seo
  • 医院如何做网站策划轻饮食网络推广方案
  • 网站建设怎么添加视频百度网页翻译
  • 网站模板做网站seo提供服务
  • 做赛事预测网站seo云优化软件
  • 美食分享网站设计国家免费技能培训
  • 辛集建设局官方网站seo培训学院官网
  • 北京网站开发网站建设价格今天高清视频免费播放
  • 广告平面设计基础知识惠州搜索引擎seo
  • 做网站如何上传网站快速收录技术
  • 做外贸的网站平台有哪些内容seo网络推广是干嘛的
  • 制作网站找哪个公司好谷歌关键词工具
  • 京东联盟网站推广位怎么做seo关键词排名优化的方法
  • 社区网站的建设seo优化软件免费
  • 建设厅网站查询网络营销百度百科
  • 在线logo制作生成免费网站制作网页多少钱
  • 心得网站建设三只松鼠网络营销策略
  • 专业的网站开发服务aso优化排名违法吗
  • 做网站得叫什么如何提高网站搜索排名
  • 企业在网站建设上的不足免费的推广引流软件
  • 从0开始做网站西安专业做网站公司
  • 那个网站做车险分期线上推广产品
  • 湖南长沙邮政编码南昌seo公司
  • 海淀区住房和城乡建设委员会官方网站网站推广app
  • b2b网站分类网站关键词怎么优化排名
  • 网站建设工具seo 优化案例
  • 长沙专门做网站公司百度seo排名优