通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"CSP考试" 试卷中 CSP-S1提高级初赛试卷[2020] 中有题目如下:
第1题
#include <iostream> #include <cstdlib> using namespace std; int n; int d[10000]; int find(int L, int R, int k) { int x = rand() % (R - L + 1) + L; swap(d[L], d[x]); int a = L + 1, b = R; while (a < b) { while (a < b && d[a] < d[L]) ++a; while (a < b && d[b] >= d[L]) --b; swap(d[a], d[b]); } if (d[a] < d[L]) ++a; if (a - L == k) return d[L]; if (a - L < k) return find(a, R, k - (a - L)); return find(L + 1, a - 1, k); } int main() { int k; cin >> n; cin >> k; for (int i = 0; i < n; ++i) cin >> d[i]; cout << find(0, n - 1, k); return 0; }
假设输入的 n,k 和 d[i] 都是不超过 10000 的正整数,且 k 不超过 n,并假设 rand() 函数产生的是均匀的随机数。
3)当输入的 d[i] 是严格单调递增序列时,第 17 行的“swap”的平均执行次数是( )
O(nlogn)
O(n)
O(log^2 n)
O(n^2)
所属试卷:CSP-S1提高级初赛试卷[2020]
有如下函数模板:template<typename T
下列有关抽象类和纯虚函数的叙述中,错误的是
现有一个集合{10,3,4,23,43,12,5,33
以下关于语言类型的描述正确的是( )。
有以下程序:程序运行后的输出结果是( )。
有三个关系R、S和T如下:则下列操作中正确的是( )。
请在下面程序的横线处填上适当内容,以使程序完整,并使程
正则表达式元字符___________用来表示该符号前
以下语句的执行结果是( )。
已知x={'a':'b','c':'d'},那么表达式
调用函数时传递的实参个数必须与函数形参个数相等才行。
尽管可以使用import语句一次导入任意多个标准库或扩
在C语言中,用关键字____________定义单精度
设表的长度为n。在下列算法中,最坏情况下时间复杂度最高
叙述Linux如何使用Windows系统硬盘(设备名为
下面给出了一个SHELL程序,试对其行后有#(n)形式
在采用客户机/服务器体系结构的数据库应用系统中,数据库
稀疏矩阵压缩存储后,必会失去随机存取功能( )
顺序存储方式只能用于存储线性结构。
耦合性有哪几种类型?其耦合度的顺序如何?[答案解析]低
下列关于非空B树的叙述中,正确的是( )。I 插入操作
功能:根据整型形参m,计算如下公式的值:y=1/2+1
设x和y均为int型变量,则以下for循环中的scan
假设变量a、b均为整型,表达式(a=5,b=2,a>b
C语言源程序的基本单位是_____。
为了避免嵌套条件语句的二义性,C语言规定else与其前
用一个#include命令可以同时指定数个被包含文件。
(双子序列最大和)给定一个长度为n(3≤n≤1000)
(数字删除)下面程序的功能是将字符串中的数字字符删除后
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2