按字典顺序(字典顺序)对元素进行排序的Java程序
使用两种方法按字典顺序(字典顺序)对字符串数组进行排序:
- 通过使用任何排序技术对数组元素进行排序。
- 通过使用Java中 util 包中 Arrays 类中的 sort()函数。
例子:
Input : Harit Girish Gritav Lovenish Nikhil Harman
Output: Girish Gritav Harit Harman Lovenish Nikhil
Input : Bob Alice
Output: Alice Bob
方法一:简单的排序技术。
在这种方法中,使用 String 类的 compareToIgnoreCase() 方法比较两个字符串。
使用的功能:
int compareToIgnoreCase(String);
返回值:
- 0 如果参数是一个在字典上等于这个字符串的字符串。
- 如果参数是按字典顺序大于此字符串的字符串,则小于 0。
- 如果参数是按字典顺序小于此字符串的字符串,则大于 0。
使用排序技术按字典顺序对字符串数组进行排序的Java程序:
Java
// Java Program to Sort Elements in
// Lexicographical Order (Dictionary Order)
import java.io.*;
class GFG {
// this method sort the string array lexicographically.
public static void
sortLexicographically(String strArr[])
{
for (int i = 0; i < strArr.length; i++) {
for (int j = i + 1; j < strArr.length; j++) {
if (strArr[i].compareToIgnoreCase(strArr[j])
> 0) {
String temp = strArr[i];
strArr[i] = strArr[j];
strArr[j] = temp;
}
}
}
}
// this function prints the array passed as argument
public static void printArray(String strArr[])
{
for (String string : strArr)
System.out.print(string + " ");
System.out.println();
}
public static void main(String[] args)
{
// Initializing String array.
String stringArray[]
= { "Harit", "Girish", "Gritav",
"Lovenish", "Nikhil", "Harman" };
// sorting String array lexicographically.
sortLexicographically(stringArray);
printArray(stringArray);
}
}
Java
// Java Program to Sort Elements in
// Lexicographical Order (Dictionary Order)
import java.io.*;
import java.util.Arrays;
class GFG {
// this function prints the array passed as argument
public static void printArray(String strArr[])
{
for (String string : strArr)
System.out.print(string + " ");
System.out.println();
}
public static void main(String[] args)
{
// Initializing String array.
String stringArray[]
= { "Harit", "Girish", "Gritav",
"Lovenish", "Nikhil", "Harman" };
// sorting String array in Lexicographical Order.
// Ingonring the case of string.
Arrays.sort(stringArray,
String.CASE_INSENSITIVE_ORDER);
// printing String array after sorting.
printArray(stringArray);
}
}
输出
Girish Gritav Harit Harman Lovenish Nikhil
时间复杂度: O(n 2 ),其中 n 是数组的大小。
方法 2:通过使用Arrays.sort()
在这种方法中,使用了Java.utils.Arrays 类方法中的 sort() 方法。
使用的功能:
Arrays.sort(stringArray, String.CASE_INSENSITIVE_ORDER);
// First Parameter : Name of Array
// Second Parameter: Special command to ignore case while sorting.
使用 Arrays.sort() 方法按字典顺序对字符串数组进行排序的Java程序:
Java
// Java Program to Sort Elements in
// Lexicographical Order (Dictionary Order)
import java.io.*;
import java.util.Arrays;
class GFG {
// this function prints the array passed as argument
public static void printArray(String strArr[])
{
for (String string : strArr)
System.out.print(string + " ");
System.out.println();
}
public static void main(String[] args)
{
// Initializing String array.
String stringArray[]
= { "Harit", "Girish", "Gritav",
"Lovenish", "Nikhil", "Harman" };
// sorting String array in Lexicographical Order.
// Ingonring the case of string.
Arrays.sort(stringArray,
String.CASE_INSENSITIVE_ORDER);
// printing String array after sorting.
printArray(stringArray);
}
}
输出
Girish Gritav Harit Harman Lovenish Nikhil
时间复杂度: O ( n log n )