求n个元素序列中第k大的元素

先用归并算法排好序
void show2(int k) {  //k为第几大的元素
		int max=r1[r1.length-1];   //从后面找起
		for(int i=r1.length-2;i>0;i--) {
			if(r1[i]<max) {     //找到比上一个小的,k--
				max=r1[i];
				k--;
			}
			if(k==1) {			//K=1时,就找到了第k大个元素
				System.out.println(max);
				break;
			}
		}
		if(k!=1)               //否则不存在第k大个元素
			System.out.println("不存在第"+k+"大的数");
	}

猜你喜欢

转载自blog.csdn.net/abc1498880402/article/details/82930568