【问题标题】:How to use a sorting algorithm in Java?如何在 Java 中使用排序算法?
【发布时间】:2011-10-17 20:52:18
【问题描述】:

我的任务是询问用户他想输入的字符串数量。然后我会提示他纠正琴弦。然后我应该按字母顺序打印刺痛。我完成了大部分任务,只需要一个排序算法,比如冒泡排序来完成它。这是我的代码。

import java.io.*; 
public class sorting
{


private static BufferedReader stdin=new BufferedReader(new InputStreamReader( System.in));

  public static void main(String[] arguments) throws IOException
  {
     System.out.println("How many strings would you like to enter?");
     int stringCount = Integer.parseInt(stdin.readLine());
     String[] stringInput = new String[stringCount];
     for(int i = 0; i < stringCount; i++)
     {
         System.out.print("Could you enter the strings here: ");
         stringInput[i] = stdin.readLine();
     }  
     //Now how do i use a sorting algorithm?
  }
}

【问题讨论】:

标签: java algorithm sorting bubble-sort


【解决方案1】:

【讨论】:

  • 我做广告吗?到 arrays.sort() 并做其他事情,因为当我运行项目时没有发生任何事情
  • 阅读我链接到的 API 参考。 (语句Arrays.sort(); 怎么知道要排序的数组?)
【解决方案2】:

如果这不是练习,您只需使用 Arrays.sort(stringInput)

【讨论】:

    【解决方案3】:

    使用 Rhino 作为 Javascript 解析器,以便您可以将 jQuery 包含到您的项目中。然后排序变得微不足道,因为您只需将 Strings 加载到 &lt;table&gt; 并在其上运行此 nifty plugin

    ^ DO NOT DO THIS. (well if you do, post the source and tell us what grade you got on the assignment ;)
    

    真的不用,自己写冒泡排序。没那么长。您可能在课堂上学习了伪代码。如果您需要其他参考,请查看上面的Wikipedia article。如果您对算法有什么特别不了解的地方,请发布一个具体问题,我们会为您提供帮助。除此之外,到目前为止,您似乎走在正确的轨道上:)

    【讨论】:

    • 我差点投反对票,直到我看到“请不要这样做”...然后我笑了!!!
    【解决方案4】:

    在我看来,您并没有被要求对字符串数组进行排序,而是按字母顺序打印字符串,这可能更丑陋但更简单。

    一旦用户键入了所有输入字符串,您可能会选择迭代数组stringCount 次,在每次迭代中找到最低值的字符串;打印它;然后清除它,这样你就不会在下一次迭代中看到它。

    但是如果您真的被要求在数组上应用冒泡排序(或任何类型的排序),那么,这完全是另一个问题,即: 如何为字符串数组编写冒泡排序。这对任何人来说都是一个棘手的问题,因为数组中的字符串长度不同:它们不能只是盲目地交换,而是必须写入某个临时数组中的某个地方,该数组以某种方式知道如何适应它们的各种长度。

    编辑:哦,等一下:也许 Java 知道所有关于可变长度字符串以及如何处理它们的知识。如果是这样,我把它全部收回。

    【讨论】:

    • 为什么对Strings 的数组进行冒泡排序很棘手..?您可以对具有明确定义的总排序的任何有序集进行冒泡排序。
    • 你能帮我解决你提到的 stringCount 吗?我将如何在我的程序中使用它。你能再详细说明一下吗,因为我几天前才开始,不知道排序算法。我的老师告诉我们使用任何类型的排序算法
    • @tskuzzy -- 对于像我这样的 C 程序员,正如我在回答中所说的那样。但是,我认为也许 Java 让这种技巧消失了。
    • @Vishal1949 -- stringCount 是程序中的变量,它指示用户键入的字符串数。
    【解决方案5】:
    1. 只需使用 Set str = TreeSet();
    2. 然后循环遍历字符串 str.add("z");
    3. 当您迭代 str 变量时,它会自动排序。

    【讨论】:

      【解决方案6】:
      import java.io.*;
      import java.util.*;
      public class sorting
      {
          public static Scanner input = new Scanner(System.in);
          public static void main(String[] args) throws IOException
          {
               System.out.print("How many strings would you like to enter? ");
               String[] stringInput = new String[Integer.parseInt(input.nextLine())];
               for(int i = 0; i < stringInput.length; i++)
               {
                   System.out.print("Could you enter the strings here: ");
                   stringInput[i] = input.nextLine();
               }  
               Arrays.sort(stringInput);
               for(String s : stringInput) System.out.println(s);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-14
        • 1970-01-01
        • 2019-10-23
        • 2017-03-19
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        相关资源
        最近更新 更多