Насколько я могу судить, здесь я применил базовую сортировку вставки. Вывод - это тот же массив, несортированный. Я правильно использую compareTo? Я не уверен, что это означает, если число больше или меньше нуля.Вставка Сортировка с помощью string.compareTo()
import java.util.Arrays;
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int lineNumber = 5;
int i,j;
String key;
String[] inputArray = {"E","D","C","B","A","B"};
System.out.println(Arrays.toString(inputArray));
for (j = 1; j < lineNumber; j++) {
key = inputArray[j];
i = j - 1;
while (i >= 0) {
if (key.compareTo(inputArray[i]) < 0) {
break;
}
inputArray[i + 1] = inputArray[i];
i--;
}
inputArray[i + 1] = key;
System.out.println(Arrays.toString(inputArray));
}
System.out.println(Arrays.toString(inputArray));
}
пробег:
[E, D, C, B, A, B]
[E, D, C, B, A, B]
[E, D, C, B, A, B]
[E, D, C, B, A, B]
[E, D, C, B, A, B]
[E, D, C, B, A, B]
BUILD SUCCESSFUL (total time: 0 seconds)
Почему [docs] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#compareTo (java.lang.String)) недостаточно для вас? - «* Возвращает: значение 0, если строка аргумента равна этой строке; значение меньше 0, если эта строка лексикографически меньше, чем строковый аргумент, а значение больше 0, если эта строка лексикографически больше аргумента строки . * " – Lion