通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"NOIP真题" 试卷中 NOIP第十四届全国青少年信息学奥林匹克联赛初赛试题[2008提高组] 中有题目如下:
第1题
( 找第 k 大的数 ) 给定一个长度为 1,000,000 的无序正整数序列,以及另一个数 n(1<=n<=1000000) ,接下来以类似快速排序的方法找到序列中第 n 大的数 (关于第 n 大 的数:例如序列 {1 ,2, 3, 4,5,6} 中第 3 大的数是 4)。
#include <stdlib.h> #include <stdio.h> int a[1000001],n,ans = -1; void swap(int *a,int *b) { int c; c = *a; *a = *b; *b = c; } int FindKth(int left, int right, int n) { int tmp,value,i,j; if (left == right) return left; tmp = rand()% (right - left) + left; swap( &a[tmp], &a[left] ); value = ① i = left; j = right; while (i < j) { while (i < j && ② ) j --; if (i < j) {a[i] = a[j]; i ++;} else break; while (i < j && ③ ) i ++; if (i < j) {a[j] = a[i]; j - -;} else break; } ④ if (i < n) return FindKth( ⑤ ); if (i > n) return ⑥ return i; } int main() { int i; int m = 1000000; for (i = 1;i <= m;i ++) scanf("%d", &a[i]); scanf("%d", &n); ans = FindKth(1,m,n); printf("%d\n", a[ans]); return 0; }
所属试卷:NOIP第十四届全国青少年信息学奥林匹克联赛初赛试题[2008提高组]
使新创建的线程参与运行调度的方法是( )。
下列关于整数乘法运算的叙述中,错误的是( )。
给定程序MODI1.C中函数fun的功能是:计算n!。
有以下程序程序运行后的输出结果是( )。
以下程序段中,与其他三个功能不同的程序段是。
Python关键字elif表示__________和_
表达式set([1,1,2、3])的值为_______
编写程序,其功能为打印如下图所示图形。**** ***
已知字典 x={i:str(i+3) for i in
使用内置函数open且以“w”模式打开的文件,文件
试定义一个带参得宏swap(x,y),以实现两个整数之
以下程序时将矩阵a、b的和存入矩阵c中并按矩阵形式输出
设有以下定义:以下程序段将通过调用宏实现变量x和y内容
TCP/IP协议的IP层是指( )
下列设备属于块设备的是( )。
要查找文件除了用find命令外还可以用什么命令?
存放Linux基本命令的目录是什么?
将光盘/dev/hdc卸载的命令。答:umount/d
栈与队列是同一种特殊操作的线性表。
在散列检索中,“比较”操作一般也是不可避免的。
下列哪一种图的邻接矩阵是对称矩阵?
链表和数组的区别包括( )。
C语言表达式!(4>=6)&&(3<=7)的值是___
设有定义:int x=2;以下表达式中,值不为6的是
给定程序中,函数fun的功能是:判定形参a所指的NxN
有三个关系R,S和T如下图所示,则由关系R和S得到关系
下列算法中运用分治思想的有( )。
LZW 编码是一种自适应词典编码。在编码的过程中,开始
输入: 9 19 29 39输出: _________
(子集划分)将 n 个数{1,2,…,n}划分成 r
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2