题解 | #查找第K小数#

查找第K小数

https://www.nowcoder.com/practice/204dfa6fcbc8478f993d23f693189ffd

#include <iostream>
using namespace std;

#define N 1000
//冒泡排序
void Mysort(int a[],int n){
	int i,j;
	for (i = 0;i<n-1;i++){
		int flag = 1;
		for (j = 0; j < n-i-1;j++){
			if (a[j]>a[j+1]){
				int temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
				flag = 0;
			}
		}
		if (flag) break;
	}
}
int main(){
	int n;
	while(cin >> n && n != 0){
		int i,j,count = 0,k,a[N];
	  //输入
		for (i = 0; i < n; i++) cin >>a[i];
		cin >>k;
	  
		Mysort(a,n);//排序
	  
		for (i = 0;i<n&&count <k;i++){
			count++;	//记录现在是第几小
			j = i+1;
			while(a[i]==a[j])j++;	//j指向第一个和i不等的数
			i=j-1;
		}
		cout <<a[i-1]<<endl;
	}
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务