| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1994 人关注过本帖
标题:请问这个代码要怎么运行
只看楼主 加入收藏
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
结帖率:72.73%
收藏
 问题点数:0 回复次数:4 
请问这个代码要怎么运行
public class QuickBest {

    // postcondition: a[lo..hi] is best-case input for quicksorting that subarray
    private static void best(int[] a, int lo, int hi) {

        // precondition:  a[lo..hi] contains keys lo to hi, in order
        for (int i = lo; i <= hi; i++)
            assert a[i] == i;

        if (hi <= lo) return;
        int mid = lo + (hi - lo) / 2;
        best(a, lo, mid-1);
        best(a, mid+1, hi);
        exch(a, lo, mid);
    }

    public static int[] best(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++)
            a[i] = i;
        best(a, 0, n-1);
        return a;
    }

    // exchange a[i] and a[j]
    private static void exch(int[] a, int i, int j) {
        int swap = a[i];
        a[i] = a[j];
        a[j] = swap;
    }


    public static void main(String[] args) {
        String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
       int n = Integer.parseInt(args[0]);  还有这行代码是什么意思?
        int[] a = best(n);
        for (int i = 0; i < n; i++)
            // StdOut.println(a[i]);
            System.out.print(alphabet.charAt(a[i]));
        System.out.println();
    }
}
搜索更多相关主题的帖子: 代码 运行 for static int 
2018-02-01 20:33
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
自动拆箱

剑栈风樯各苦辛,别时冰雪到时春
2018-02-01 22:35
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
收藏
得分:0 
回复 2楼 林月儿
不行啊,args数组是空的
2018-02-01 22:51
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
那就加参数执行啊 命令行试试

剑栈风樯各苦辛,别时冰雪到时春
2018-02-03 19:47
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
收藏
得分:0 
package com.demo;

/*
 * q1:
 * 这段代码,需要在eclipse中运行
 */
//请问这个代码要怎么运行
public class QuickBest {
    // postcondition: a[lo..hi] is best-case input for quicksorting that subarray
    private static void best(int[] a, int lo, int hi) {
        // precondition:  a[lo..hi] contains keys lo to hi, in order
        for (int i = lo; i <= hi; i++)
            assert a[i] == i;

        if (hi <= lo) return;
        int mid = lo + (hi - lo) / 2;
        best(a, lo, mid-1);
        best(a, mid+1, hi);
        exch(a, lo, mid);
    }

    public static int[] best(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++)
            a[i] = i;
        best(a, 0, n-1);
        return a;
    }

    // exchange a[i] and a[j]
    private static void exch(int[] a, int i, int j) {
        int swap = a[i];
        a[i] = a[j];
        a[j] = swap;
    }

    public static void main(String[] args) {
        String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        //因为args没有赋值,报数组指针越界异常了
        //int n = Integer.parseInt(args[0]);  //还有这行代码是什么意思?
        
        /*
         * q2:
         * 分析:
         * 1.这段代码的意思明显,就是给alphabet这个字符串排序
         * 2.n的取值应该是alphabet的长度,因此修改为下面这句话
         * 3.结果是ZBADECIHGKJLFSONQRPVUTXWYMmbadecihgkjlftonrqspwvuyxz
         */
        int n = alphabet.length();
        int[] a = best(n);
        for (int i = 0; i < n; i++)
            // StdOut.println(a[i]);
            System.out.print(alphabet.charAt(a[i]));
        System.out.println();
    }
}

假如人生没有梦想,和咸鱼有什么区别!
2018-02-06 09:52
快速回复:请问这个代码要怎么运行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022213 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved