第K小整数
qbasic吧
全部回复
仅看楼主
level 5
琪の悠朵 楼主

问题描述
现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤4000,正整数均小于30000。
输入文件
第一行为n和k;
第二行开始为n个正整数的值,整数间用空格隔开。
输出文件
第k个最小整数的值;若无解,则输出“NO RESULT”。
输入样例
10 3
1 3 3 7 2 5 1 2 4 6
输出样例
3
答案:OPEN "knumber.in" FOR INPUT AS #1
OPEN "knumber.out" FOR OUTPUT AS #2
INPUT #1,n, k
DIM a(n)
FOR i = 1 TO n
INPUT #1,a(i)
NEXT i
FOR i = 1 TO n - 1
FOR j = i + 1 TO n
IF a(i) = a(j) THEN n = n - 1: FOR u = j TO n - 1: a(u) = a(u + 1): NEXT u
IF a(i) > -1 AND a(j) > -1 THEN
IF a(i) > a(j) THEN SWAP a(i), a(j)
END IF
NEXT j
NEXT i
IF k <= n THEN PRINT a(k) ELSE PRINT #2,"NO RESULT"
CLOSE
END

2011年11月27日 10点11分 1
level 7
要用快排()
2012年01月19日 05点01分 2
level 7
插入,冒泡之类的排序法只需要排K次,根据K的大小而定吧
2012年01月19日 09点01分 3
1