Implementación de vectores ordenados en Java

Vector es una clase que implementa la interfaz List. Es un tipo de array dinámica que significa que el tamaño de un vector puede aumentar o reducirse durante la ejecución del programa. El tamaño inicial del vector es 10 y si insertamos más de 10 elementos entonces el tamaño del vector aumenta en un 100%, o podemos decir que duplica el tamaño. Por ejemplo, inicialmente el tamaño del vector es 10, y si insertamos más de 10 elementos, el tamaño del vector es 20 y después de insertar 20 elementos en el vector, el tamaño del vector será 40.

El siguiente diagrama de la colección API

En el que hay una colección de nombre de interfaz que se amplía con las interfaces Set, List y Queue, y la interfaz de lista se amplía con la clase ‘Vector’.

Enfoques: implementación de la clasificación por orden descendente

Para implementar SortedVector

  1. Extienda el vector. (Demostrado aquí)
  2. Ampliar ArrayList.
  3. Ampliar lista enlazada
  4. Implemente directamente la interfaz List.

Algoritmo:

  1. Extienda la clase de vector para la implementación de SortedVector.
  2. Un miembro de datos privados para almacenar datos en SortedVector.
  3. Para crear objetos de SortedVector, tenemos que definir todos los constructores.
  4. Para agregar elementos en SortedVector, creamos un método ‘addingElements’.
    1. Añadir elementos.
    2. Si el tamaño del miembro de datos es menor o igual a 1, entonces no hay necesidad de ordenar.
    3. Si el tamaño es mayor que 1, ordénelo.
    4. Si el usuario ingresó strings, entonces generó un error.
  5. Al final, agregue elementos en un vector ordenado.
  6. Borre SortedVector y luego agregue todos los datos en orden.

A continuación se muestra la implementación del enfoque anterior:

Java

// We are going to implement sorted vector
// from inbuilt Vector class.
import java.util.*;
  
class SortedVector extends Vector<Object> {
  
    private final Vector<Object> list = new Vector<>();
    private final Comparator<? super Object> comparator
        = Collections.reverseOrder();
      
    public SortedVector() {}
  
    // method for adding elements in data
    // member of 'SortedVector'
  
    public void addingElement(Object obj)
    {
  
        list.add(obj);
  
        // if list size is less than or equal to one
        // element then there is no need of sorting.
        // here we are sorting elements
  
        if (list.size() > 1) {
  
            // If we are getting character as input then
            // Exceptions occurs in 'Collections.sort'.
            // So, we are type casting character to int.
            // and sorting character as integer.
  
            try {
  
                list.sort(comparator);
            }
            catch (Exception e) {
  
                Object recent = list.lastElement();
  
                list.removeElementAt(list.size() - 1);
  
                int val;
  
                // If we are getting string as input then
                // we are handling this exception here.
  
                try {
  
                    val = (char)recent;
  
                    list.add(val);
  
                    list.sort(comparator);
                }
                catch (Exception e1) {
  
                    System.out.println(
                        "You entered Strings");
                }
            }
        }
  
        addingElementsInSortedVector();
    }
  
    // adding element in object of 'SortedVector'
  
    private void addingElementsInSortedVector()
    {
  
        // clear all values of "SortedVector's" object
  
        clear();
  
        // adding values in object of 'SortedVector'
  
        addAll(list);
    }
}
  
// ours code starts from here
  
public class Main {
  
    public static void main(String[] args)
    {
  
        // creating an object of Sorted vector
  
        SortedVector sorted_vector = new SortedVector();
  
        // we have a method for adding object in
        //'SortedVector' class called 'addingElement'.
        // adding element in object of 'SortedVector'
  
        sorted_vector.addingElement(1);
        System.out.println("After 1st element Insertion:");
        for (Object i : sorted_vector) {
            System.out.println(i);
        }
        sorted_vector.addingElement(99);
  
        System.out.println("After 2nd element Insertion:");
        for (Object i : sorted_vector) {
            System.out.println(i);
        }
  
        System.out.println("After 3rd element Insertion:");
        sorted_vector.addingElement(2);
        for (Object i : sorted_vector) {
            System.out.println(i);
        }
        sorted_vector.addingElement(0);
  
        System.out.println("After 4th element Insertion:");
        for (Object i : sorted_vector) {
            System.out.println(i);
        }
    }
}
Producción

After 1nd element Insertion:
After 1st element Insertion:
1
After 2nd element Insertion:
99
1
After 3rd element Insertion:
99
2
1
After 4th element Insertion:
99
2
1
0

Complejidad del tiempo: O(n 2 log n)

Publicación traducida automáticamente

Artículo escrito por depresseddeadpool 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 *