Example: Program to Sort Strings in Dictionary Order
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]);
}
}
}
Output
In lexicographical order: C Java Python Ruby
In the above example, we have created a String
array named words. The array includes 5 elements.
Here, we are using
for
loops to access and compare each array elementcompareTo()
method to perform the comparison
Since we are sorting elements in lexicographical (dictionary) order, we are swapping elements if the first element comes after the second element in the dictionary.
Here's how elements are compared and swapped in each iteration.
Initial words | i | j | Comparison | words[] |
---|---|---|---|---|
{ "Ruby", "C", "Python", "Java" } |
0 | 1 | Ruby and C | { "C", "Ruby", "Python", "Java" } |
{ "C", "Ruby", "Python", "Java" } |
0 | 2 | C and Python | { "C", "Ruby", "Python", "Java" } |
{ "C", "Ruby", "Python", "Java" } |
0 | 3 | C and Java | { "C", "Ruby", "Python", "Java" } |
{ "C", "Ruby", "Python", "Java" } |
1 | 2 | Ruby and Python | { "C", "Python", "Ruby", "Java" } |
{ "C", "Python", "Ruby", "Java" } |
1 | 3 | Python and Java | { "C", "Java", "Ruby", "Python" } |
{ "C", "Java", "Ruby", "Python" } |
2 | 3 | Ruby and Python | { "C", "Java", "Python", "Ruby" } |