码迷,mamicode.com
首页 > 其他好文 > 详细

选择问题,自定义k=N/2为最大值!

时间:2016-10-09 23:24:04      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:选择k为最大值   java   

方法:

    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(;k<len;len--){
if(a[len]>a[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<N;i++){
b[i]=(int) (Math.random()*1000);
}
int k=N/2;
System.out.println("在第"+k+"个位置上最大值为:"+a.getmax_(b, k));
long end = System.currentTimeMillis() - begin; // 这段代码放在程序执行后
System.out.println("耗时:" + end + "毫秒");
}
}

结果:

    技术分享

    

选择问题,自定义k=N/2为最大值!

标签:选择k为最大值   java   

原文地址:http://edwardlj.blog.51cto.com/12133317/1859935

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!