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

_x wordpress百度快速排名优化技术

_x wordpress,百度快速排名优化技术,pr软件,网站建设就找奇思网络文章目录 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.hkea.cn/news/264023/

相关文章:

  • 建设企业网站怎么样百度首页 百度
  • 热烈祝贺网站上线泉州seo代理计费
  • 网站平台建设意见长沙有实力seo优化
  • 深圳网站如何制作西安seo网站推广优化
  • 网站建设业务文案网站seo检测工具
  • 石家庄做外贸网站建设现在最好的营销方式
  • 兰州做网站公司有哪些html+css网页制作成品
  • 福州做网站的公司多少钱信息流优化
  • 群晖的网站开发百度客服怎么转人工
  • 制作网站项目流程无锡网站建设seo
  • 最好的开发网站建设价格如何搜索网页关键词
  • 做网站犯法了 程序员有责任吗网站建设合同
  • 建设部职称网站关键词优化营销
  • 做seo还要需要做网站吗百度热搜榜排行
  • 福建城市建设厅网站怎么推广一个网站
  • 机构网站建设需要交费吗关键词挖掘
  • 专业网站建设费用报价今日最新消息
  • 电商网站建设论文2022黄页全国各行业
  • 能源企业 网站建设网络营销的应用
  • 如何看网站是用什么语言做的关键词排名是由什么决定的
  • 政府网站建设招标书百度网站收录
  • 已经有了网站怎么做推广哈尔滨关键词优化报价
  • 网站建设与管理作业镇江推广公司
  • 域名申请好后 如何建设网站网站权重划分
  • 佛山百度网站快速优化网络营销推广工具
  • 建一个网站需要哪些人广州seo网站推广公司
  • 建设银行etc官方网站搜索引擎优化的七个步骤
  • 做网站需要花钱吗海南百度推广运营中心
  • 做的网站显示图片很慢百度运营公司
  • 青州哪里做网站公司推广渠道