方法:

    k之前的先排序,最大值给k。

    之后的逐个比较,大于k直接覆盖,否则k不变。


代码

    
package com.Edward.suanfa;
import java.util.Random;
class getmax{
int getmax_(int a[],int k){//数组a[],k为指定最大值
int max=a[0];
int temp;
int len=a.length-1;
for(int i=0;i<=k;i++){
if(max>a[i]){
temp=a[i];
a[i]=max;
max=a[i];
}
}
for(;ka[k]){
a[k]=a[len];
}
}
return a[k];
}
}
public class k_max {
public static void main(String[] args) {
// TODO Auto-generated method stub
long begin = System.currentTimeMillis(); // 这段代码放在程序执行前
getmax a=new getmax();
int N=1000000;
int []b=new int[N];
for(int i=0;i 
  

结果:

    wKiom1f6NTOQwEALAAAPlCQX5cA844.png-wh_50