Programa Java para Ordenar Elementos en Orden Lexicográfico (Orden del Diccionario)

 Ordenar una array de strings en orden lexicográfico (orden del diccionario) usando dos enfoques:

  1. Mediante el uso de cualquier técnica de clasificación para ordenar los elementos de la array.
  2. Al usar la función sort() presente en la clase Arrays en el paquete util en java.

Ejemplo:

Input : Harit Girish Gritav Lovenish Nikhil Harman 
Output: Girish Gritav Harit Harman Lovenish Nikhil

Input : Bob Alice
Output: Alice Bob 

Enfoque 1: Técnica de clasificación simple.

En este enfoque, dos strings se comparan utilizando el método compareToIgnoreCase() de la clase String.

Funciones utilizadas:

int compareToIgnoreCase(String);

Valor de retorno:

  1. 0 si el argumento es una string lexicográficamente igual a esta string.
  2. Menos de 0 si el argumento es una string lexicográficamente mayor que esta string.
  3. Mayor que 0 si el argumento es una string lexicográficamente menor que esta string.

Un programa Java para ordenar una array de strings en orden lexicográfico utilizando la técnica de clasificación :

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);
    }
}
Producción

Girish Gritav Harit Harman Lovenish Nikhil 

Complejidad de tiempo: O(n 2 ), donde n es el tamaño de una array.

Enfoque 2: mediante el uso de Arrays.sort()

En este enfoque, se utiliza el método sort() en un método de clase java.utils.Arrays .

Funciones utilizadas:

Arrays.sort(stringArray, String.CASE_INSENSITIVE_ORDER);

// First Parameter : Name of Array
// Second Parameter: Special command to ignore case while sorting.

Un programa java para ordenar una array de strings en orden lexicográfico usando el método Arrays.sort() :

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);
    }
}
Producción

Girish Gritav Harit Harman Lovenish Nikhil 

Complejidad de tiempo: O ( n log n )

Publicación traducida automáticamente

Artículo escrito por girishthareja23 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *