| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
免费IT实战开发视频教程合集分享千里之行 始于足下
共有 664 人关注过本帖
标题:请问这个代码要怎么运行
只看楼主 加入收藏
温酒斩化腾
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();
    }
}
2018-02-01 20:33
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:101
帖 子:1660
专家分:7215
注 册:2015-3-19
  得分:0 
自动拆箱

wechat    PrinceThumb
2018-02-01 22:35
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
  得分:0 
回复 2楼 林月儿
不行啊,args数组是空的
2018-02-01 22:51
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:101
帖 子:1660
专家分:7215
注 册:2015-3-19
  得分:0 
那就加参数执行啊 命令行试试

wechat    PrinceThumb
2018-02-03 19:47
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:22
帖 子:380
专家分:1662
注 册: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.027341 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved