Java需要解释我的词典顺序算法

时间:2014-09-21 06:03:43

标签: java algorithm

import java.util.Scanner;

public class StringOrder
{
    public static void main(String[] args) 
    {
        String s1, s2, s3;
        Scanner keyboard = new Keyboard(System.in);
        System.out.println("Enter your first string.");
        s1 = keyboard.next();
        System.out.println("Enter your second string.");
        s2 = keyboard.next();
        System.out.println("Enter your third string.");
        s3 = keyboard.next();
        int c1 = abs(s1.compareTo(s2));
        int c2 = abs(s2.compareTo(s3));
        int c3 = abs(s1.compareTo(s3));
        System.out.println(Math.min(c1,c2,c3)+" "+Math.median(c1,c2,c3)+" "+Math.max(c1,c2,c3));
        System.out.println("lexicographical sorting finished");
    }
}

以上是我的代码。

我对代码本身没有任何问题。

我只是想看看我试图解决这个问题的方式是否属实。

我正在尝试将三个用户输入字符串值排序为词典顺序

我提出了使用compareTo方法的解决方案,并将结果值存储到整数变量中,然后使用绝对值来查找彼此相邻的值。

我还没有编译上面的代码。

我唯一的问题是我的算法是否有效? 我试图自己弄清算法,所以我不想要任何解决问题的首选方案,而只是解释为什么它不应该起作用或应该起作用。

1 个答案:

答案 0 :(得分:2)

compareTo唯一的保证是关于结果的符号(0,> 0,< 0),而不是它的大小。因此,使用它“找到哪一个是彼此相邻的”是行不通的。