贤云(xianyun) 2014-08-05 15:14
浏览 198
已采纳

java算法题

写一个算法:有10000000种不同的整型数。发现其最大的100要素。实施时应执行速度的优化。

  • 写回答

2条回答 默认 最新

  • lasaka 2014-08-05 17:53
    关注

    [code="java"]
    import java.util.ArrayList;

    public class createDir {
    private static int num[] =new int [10000000];
    private static ArrayList ans=null;
    public static void main(String[] arg){
    for(int i = 0;i num[i]= i+1;
    }
    boolean boo=true;
    int i = 0;
    while (boo) {
    int j = (int) (Math.random() * 10000000);
    int k = num[i];
    num[i] = num[j];
    num[j] = k;
    i++;
    if(i==100000){
    boo =false;
    }
    }
    long start =System.currentTimeMillis();
    ans = new ArrayList();
    for(int j = 0;j if(j ans = sort(ans,num[j]);
    }else{
    if(num[j]>(Integer)ans.get(0)){
    ans = getMaxValue(ans,num[j]);
    }
    }
    }
    long end =System.currentTimeMillis();
    long total= (end-start);
    System.out.println(total + " ms");
    System.out.println(ans);
    }
    private static ArrayList getMaxValue(ArrayList ans,int num){
    for(int i=1;i if(num ans.add(i,num);
    ans.remove(0);
    break;
    }
    if(i==ans.size()-1){
    ans.add(num);
    ans.remove(0);
    break;
    }
    }
    return ans;
    }
    private static ArrayList sort(ArrayList ans,int num){
    if(ans.size()>0){
    int min = (Integer) ans.get(0);
    if(min>num){
    ans.add(0, num);
    }else if(ans.size()==1){
    ans.add(num);
    }else{
    for(int i=1;i<ans.size();i++){
    if(num < (Integer) ans.get(i)){
    ans.add(i,num);
    break;
    }
    if(i==ans.size()-1){
    ans.add(num);
    break;
    }
    }
    }
    }else{
    ans.add(0, num);
    }

        return ans;
    }
    

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿