Как использовать алгоритм сортировки в Java? - PullRequest
1 голос
/ 02 августа 2011

Мое задание - спросить пользователя о количестве строк, которые он хотел бы ввести.Тогда я подскажу ему, чтобы исправить строки.Затем я должен напечатать строки в алфавитном порядке.Я выполнил большую часть задания, просто нужен алгоритм сортировки, такой как Bubble sort, чтобы закончить его.это мой код.

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?
  }
}

Ответы [ 6 ]

8 голосов
/ 02 августа 2011
3 голосов
/ 02 августа 2011

Используйте Rhino в качестве парсера Javascript, чтобы вы могли включить jQuery в ваш проект. Тогда сортировка становится тривиальной, поскольку вы можете просто загрузить String s в <table> и запустить на нем отличный плагин .

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

Нет, просто напиши пузырьковую сортировку самостоятельно. Это не так долго. Вы, наверное, выучили псевдокод в классе. Если вам нужна дополнительная ссылка, взгляните на статью Википедии . Если есть что-то конкретное, что вы не понимаете в алгоритме, опубликуйте конкретный вопрос, и мы поможем вам. Кроме того, ты выглядишь так, как будто ты на правильном пути:)

2 голосов
/ 02 августа 2011

Если бы это было не упражнение, вы бы просто использовали Arrays.sort(stringInput)

1 голос
/ 02 августа 2011
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);
    }
}
0 голосов
/ 02 августа 2011
  1. Просто используйте Set str = TreeSet ();
  2. затем перебрать строку str.add ("z");
  3. при итерации переменной str она автоматически сортируется.
0 голосов
/ 02 августа 2011

Мне кажется, что вас просят не сортировать строковый массив, а печатать строки в алфавитном порядке, что, вероятно, будет намного страшнее, но намного проще.

Как только пользователь наберет все входные строки, вы можете выбрать итерацию по массиву stringCount раз, найдя в каждой итерации строку с наименьшим значением; печать его; а затем очистите его, чтобы вы не увидели его в следующей итерации.

НО если вас действительно просят применить к массиву пузырьковую сортировку (или любой вид сортировки), ну, в общем-то, это еще один вопрос, а именно: как я могу написать пузырьковую сортировку для массива строк. Это непростая задача для всех, потому что строки в массиве имеют разную длину: их нельзя просто поменять местами вслепую, а нужно записать в какой-нибудь временный массив где-нибудь, который каким-то образом знает, как разместить их различные длины.

РЕДАКТИРОВАТЬ: О, подождите секунду: возможно, Java знает все о строках переменной длины и о том, как их обрабатывать. Если так, я все заберу обратно.

...