Сортировка строк в лексикографическом порядке на Java — Arrays.sort
Эта программа сортирует массив строк в словарном порядке.
Пример: сортировка строк в словарном порядке
class Main {
public static void main(String[] args) {
String[] words = { "Ruby", "C", "Python", "Java" };
for(int i = 0; i < 3; ++i) {
for (int j = i + 1; j < 4; ++j) {
if (words[i].compareTo(words[j]) > 0) {
// swap words[i] with words[j]
String temp = words[i];
words[i] = words[j];
words[j] = temp;
}
}
}
System.out.println("In lexicographical order:");
for(int i = 0; i < 4; i++) {
System.out.println(words[i]);
}
}
}
Вывод:
In lexicographical order:
C
Java
Python
Ruby
В примере выше мы создали массив строк words. Массив содержит 4 элемента.
Здесь мы используем:
циклы
forдля доступа и сравнения каждого элемента массива;метод
compareTo()для выполнения сравнения.
Поскольку мы сортируем элементы в лексикографическом (словарном) порядке, мы меняем местами элементы, если первый элемент идёт после второго в словарном порядке.
Так выглядит сравнение и обмен элементов на каждой итерации:
Исходный words |
i |
j |
Сравнение |
words[] |
|---|---|---|---|---|
|
0 |
1 |
Ruby и C |
|
|
0 |
2 |
C и Python |
|
|
0 |
3 |
C и Java |
|
|
1 |
2 |
Ruby и Python |
|
|
1 |
3 |
Python и Java |
|
|
2 |
3 |
Ruby и Python |
|