2018省赛第九届蓝桥杯真题C语言B组第五题题解 快速排序
2018第九届蓝桥杯C++省赛B组[最新题解汇总]
标题:快速排序。
以下代码可以从数组a[]中找出第k小的元素。
它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的。
请仔细阅读分析源码,填写划线部分缺失的内容。
#include <stdio.h>
int quick_select(int a[], int l, int r, int k) {
int p = rand() % (r - l + 1) + l;
int x = a[p];
{int t = a[p]; a[p] = a[r]; a[r] = t;}
int i = l, j = r;
while(i < j) {
while(i < j && a[i] < x) i++;
if(i < j) {
a[j] = a[i];
j--;
}
while(i < j && a[j] > x) j--;
if(i < j) {
a[i] = a[j];
i++;
}
}
a[i] = x;
p = i;
if(i - l + 1 == k) return a[i];
if(i - l + 1 < k) return quick_select( _____________________________ ); //填空
else return quick_select(a, l, i - 1, k);
}
int main()
{
int a[] = {1, 4, 2, 8, 5, 7, 23, 58, 16, 27, 55, 13, 26, 24, 12};
printf("%d\n", quick_select(a, 0, 14, 5));
return 0;
}
答案:a, i+1, r, k-(i-l+1)
2018省赛第九届蓝桥杯真题C语言B组第五题题解 快速排序相关推荐
- 2018省赛第九届蓝桥杯真题C语言B组第十题题解 乘积最大
2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:乘积最大 给定N个整数A1, A2, ... AN.请你从中选出K个数,使其乘积最大. 请你求出最大的乘积,由于乘积可能超出整型范围,你只 ...
- 2018省赛第九届蓝桥杯真题C语言B第四题题解 测试次数
2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机 ...
- 2018省赛第九届蓝桥杯真题C语言B组第九题题解 全球变暖
2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:全球变暖 你有一张某海域NxN像素的照片,"."表示海洋."#"表示陆地,如下所示: ....... ...
- 2018省赛第九届蓝桥杯真题C语言B组第八题题解 日志统计
2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在t ...
- 2018省赛第九届蓝桥杯真题C语言B组第六题题解 递增三元组
2018第九届蓝桥杯C++省赛B组[最新题解汇总] 标题:递增三元组 给定三个整数数组 A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C ...
- 蓝桥杯——第九届C语言B组第五题:x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机;
x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机; (1)对于这道题摔手机测试题呢!也就是求它的最优解;我一开始想到这道题的解法呢!是二分解,但你往里面具体的深入的看题,它是一个巨 ...
- 第九届蓝桥杯真题解析JavaC组
第九届蓝桥杯真题解析JavaC组 文章目录 ***第九届蓝桥杯真题解析JavaC组*** 前言 A.哪天回家 B.猴子分香蕉 C.字母阵列 D.第几个幸运数 E.书号验证 F.打印大X G.缩位求和 ...
- 2018年第九届蓝桥杯真题解析 | 日志统计【Python】
问题描述 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有 N 行.其中每一行的格式是: ts id 表示在 ts 时刻编号 id 的帖子收到一个"赞&q ...
- 2018年第九届蓝桥杯真题解析 | 星期一【Python】
问题描述 整个 2020 世纪(1901 年 1 月 1 日至 2000年 12 月 31 日之间),一共有多少个星期一? 个人思路 使用datetime模块 常见的datetime函数 1.S = ...
最新文章
- FD.io/VPP — QoS — DPDK Hqos
- 利用Python爬取糗事百科段子信息
- HDU - 6756 Finding a MEX-分块思想
- lseek、stat、access、chmod、strtol、truncate、unlink
- Android Input子系统-含实例源码
- SpringBoot的启动过程
- 8086考试主要考的最小模式
- (译)如何制作一个类似tiny wings的游戏:第一部分
- jquery获取元素颜色css('color')的值返回RGB
- ACE Admin 模板实现sidebar菜单联动tabs页签
- Vscode ssh远程连接失败解决办法
- Linux搜索文件或内容
- Windows驱动一些概念WDK WDF WDM WDI
- ActiveMQ 默认用户名和密码
- 现代前端技术解析读书笔记
- 花千骨歌曲大全 附简谱
- 随机变量的期望和方差
- pe如何自动加载外置工具_WINPE如何做到启动后自动运行外置程序里面指定的程序...
- 计算机硕士可以入伍么,2021年下半年“征兵”已开始,大学生在校入伍好,还是毕业入伍好...
- 研究ffmepg中有感(NDK 与 JNI 的关系)