Introducere în Sortarea în Java

  • Sortarea în Java este în principiu aranjarea unui grup de elemente stocate undeva într-o anumită ordine, această ordine poate fi atât ascendentă, fie descendentă, Există multe scenarii în programarea în timp real unde devine necesară sortarea elementelor, deoarece face și căutarea un element particular ușor, deoarece elementele pot fi preluate ușor prin indexul de matrice direct dacă sunt sortate. Elementele care trebuie sortate pot fi stocate fie într-un tablou, fie într-o colecție. Colecția este de mai multe tipuri în seturi asemănătoare cu Java, Arbore, Hartă, Morman, Listă, etc. Deși există diferite tipuri de algoritmi de sortare, care sunt folosiți pentru a sorta elementele într-o matrice de tip Bubble Sort, Heap Sort, Insertion Sort, Sortare selecție, combinare sortare etc.
  • Programatorii folosesc algoritmi diferiți pentru a sorta elementele în funcție de cerințele lor specifice și complexitatea algoritmilor. Acești algoritmi de sortare sunt implementați prin utilizarea diferitelor bucle și variabile pentru a repeta. În afară de utilizarea algoritmilor de sortare pentru a sorta elementele dintr-un tablou, Java oferă funcția de sortare încorporată care poate ajuta cu același lucru, iar programatorul nu trebuie să fie blocat în bucle mari și să se gândească la complexitate. Da, ați auzit corect, în funcția Java sortare () se folosește sortarea elementelor stocate fie în tablouri sau colecții, cât și cu o complexitate foarte mică a o (n (logn)). Deși implementarea metodei în ambele este un pic diferită.

Sintaxă pentru Schițe:

Arrays.sort(array_name);

Pentru colecții

Collections.sort(array_name_list);

  • Aici array_name și array_name_list este numele tabloului sau colecția care trebuie sortată.
  • Array-urile sunt numele claselor Java.
  • Colecția este un cadru în Java.
  • sort () este funcția de sortare inbuilt folosită în Java.

Cum se realizează sortarea în Java?

Următoarele puncte sunt următoarele:

  • Prin utilizarea algoritmilor de sortare, sortarea se poate efectua și cu algoritmi care variază de la ineficient la eficient și fiecare algoritm are propriul său complex și de timp.
  • Uneori, acești algoritmi au o complexitate foarte mare, încât nu pot fi folosiți în scenarii reale în care este nevoie să se ocupe de cantități mari de date.
  • Așa cum am menționat mai sus, în funcția Java incorporată, sort () este utilizat pentru a sorta toate elementele unei Array și colecții. Conform Java DOC oficial, Array.sort folosește quicksort-ul care este dublu pivot și relativ mult mai rapid decât Sortul rapid cu un singur pivot.
  • Unul dintre cele mai mari avantaje este că oferă o complexitate de O (n (logn)). Folosește implementarea foarte stabilă și iterativă a obiectului tablou de Merge Sort. Java oferă o metodă de a sorta tabloul în ordine inversă, în conformitate cu cerința programatorului de a sorta fie în ordine crescătoare, fie în ordine descendentă. Metoda Collections.reverseOrder () este utilizată pentru a sorta elementele în ordine inversă sau descendentă.
  • Java 8 oferă, de asemenea, facilitatea de a sorta matrițele în paralel folosind sortarea paralelă care folosește conceptul multithreading Java și împarte întregul tablou în părți și le îmbină după sortare.

Tipuri de sortare în Java

Mai jos menționate sunt câteva dintre modalitățile prin care se poate face sortarea în Sortare în Java:

1. sortare (nume_ array)

Aceasta este utilizată pentru a sorta tabloul complet în ascendent În mod implicit, această metodă sortează elementele tabloului în ordine crescătoare.

Cod:

import java.util.Arrays;
public class SimpleSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() (100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

ieşire:

2. Collection.reverseOrder ()

Această metodă în Java este utilizată pentru a sorta tabloul în ordine inversă sau în ordine descendentă. Există scenarii în care trebuie să sortăm elementele în ordine descrescătoare și Java face asta prin metoda încorporată.

Cod:

import java.util.Arrays;
public class ReverseSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr, Collections.reverseOrder());
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

ieşire:

3. sortare (int () array_name, int findex, int lindex)

Dacă este necesară sortarea unei părți dintr-un tablou în loc de întregul tablou, Java oferă posibilitatea de a sorta acest tip de matrice specificând 3 parametri, adică numele tabloului, primul index de unde trebuie pornit sortarea și ultimul index până când trebuie făcută sortarea.

Cod:

import java.util.Arrays;
public class ReverseSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//Sort function to sort the above array
Arrays.sort(arr, 1, 5);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)

ieşire:

4. Arrays.parllelSort (array_name)

De la Java 8, noua API de sortare paralelă a fost lansată. Practic, în sortare paralelă, tabloul este împărțit în 2 sub-matrice și apoi funcția de bază Array.sort () este realizată de un fir separat. Matricile sortate sunt apoi îmbinate la final pentru a forma un tablou complet sortat. Acest lucru se face pentru a utiliza utilizarea multi-threading.

Cod:

import java.util.Arrays;
public class ParallelSort
(
public static void main(String() args)
(
//Unsorted array of numbers
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60);
//parallel Sort function to sort the above array
Arrays.parallelSort(arr);
//Printing the sorted array on console
System.out.println(Arrays.toString(arr));
)
)

ieşire:

Ca și un Array.sort normal (), Arrays.parallelSort () oferă, de asemenea, facilitatea de a sorta o anumită gamă de tablă sau de a sorta un tablou în ordine inversă.

Sintaxă:

// to Sort a range of array by parallelsort
Arrays.parallelSort(array_name, findex, lindex);
// to sort an array in reverse order using parallelSort
Arrays.parallelSort(array_name, Collections.reverseOder());

5. Collection.sort ()

Această metodă este utilizată pentru a sorta colecțiile precum listă, hartă, set, etc. Folosește sortarea îmbinării și oferă aceeași complexitate ca Array.sort (), adică O (n (logn)).

1. Sortarea unei liste în ordine crescătoare

Cod:

import java.util.Arrays;
import java.util.Collections;
public class ListSort
(
public static void main(String() args)
(
//Unsorted list
Integer() arr = new Integer() ( 100, 20, 10, 30, 80, 70, 90, 40, 50, 60 );
List arrList = Arrays.asList(arr);
//Sorting of list using the method
Collections.sort(arrList);
//Printing the list sorted above
System.out.println(arrList);
)
)

ieşire:

2. Sortarea listei Array în ordine descrescătoare

Cod:

import java.util.Arrays;
import java.util.Collections;
public class ListSortRev
(
public static void main(String() args)
(
//Unsorted array list of Integers
Integer() arr = new Integer() (100, 20, 10, 30, 80, 70, 90, 40, 50, 60 );
List arrList = Arrays.asList(arr);
//Sorting of list using the method
Collections.sort(arrList);
//Printing the list sorted above
System.out.println(arrList);
)
)

ieşire:

3. Sortarea setului

Există 3 reguli de bază în timp ce sortați o colecție 'Set' folosind metoda de sortare de mai sus (array_name):

    1. Convertiți setul în listă.
    2. Sortați lista utilizând sortarea metodei (nume_părți).
    3. Convertiți lista sortată rezultată înapoi la Setare.

Cod:

List numList = new ArrayList(num) ;
//Sorting the list retrieved above
Collections.sort(numList);
// Converting sorted List into Set
num = new LinkedHashSet(numList);
//Printing the Resulting Set on console
System.out.println(num);
)
)

ieşire:

4. Sortează o hartă

Harta colecției în Java este o combinație de cheie și valoare Deci sortarea se poate face atât prin cheie, fie prin valoare.

  • Sortarea unei hărți după cheie: Să vedem exemplul de mai jos al Sortării unei hărți după cheie.

Cod:

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class SortHashKey
(
public static void main(String() args)
(
HashMap map = new HashMap();
map.put(80, "Akshay");
map.put(20, "Akash");
map.put(10, "Bob");
map.put(30, “Nitika");
map.put(90, "Yashi");
map.put(100, "Dragisa");
TreeMap treeMap = new TreeMap(map);
System.out.println(treeMap);
)
)

ieşire:

Una dintre cele mai simple modalități de a sorta elementele Hărții după chei este adăugarea elementelor de hartă nesortate în TreeMap. TreeMap sortează automat elementele în ordinea crescătoare a tastelor Hash. Deși collection.sort () poate fi de asemenea folosită pentru a face la fel, este oarecum complexă și trebuie codificată bine.

  • Sortarea unei hărți după valoare: Mai jos este menționat un exemplu despre modul de sortare într-o hartă folosind valoare.

Cod:

import java.util.HashMap;
import java.util.Map;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map;
public class SortHashValue
(
public static void main(String() args)
(
HashMap map = new HashMap(); map.put(80, "Akshay");
map.put(20, "Akash");
map.put(10, "Bob");
map.put(30, “Nitika");
map.put(90, "Yashi");
map.put(100, "Dragisa");
LinkedHashMap sorted = new LinkedHashMap(); map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.forEachOrdered(x -> sorted.put(x.getKey(), x.getValue()));

ieşire:

În exemplul de mai sus de sortare a Hărții după valoare, mai întâi setăm intrările folosind harta map.entrySet () și apoi fluxul respectivelor intrări folosind metoda stream (), apelăm la tabelul sortat folosind metoda sortată () prin comparare după valoare în pereche. pentru fiecare comandat () este folosit pentru a traversa fluxul pentru a produce rezultatul.

5. Comparabil

Comparabilă este o interfață și face clasele comparabile cu instanțele sale.

Pentru a compara cele două instanțe ale aceleiași clase Interfața comparabilă trebuie să fie implementată și metoda compareTo () trebuie să fie anulată. Clasele care implementează această interfață, lista acesteia de obiecte sunt sortate automat folosind metoda Collections.sort () și Arrays.sort ().

Cod:

ArrayList list = new ArrayList();
// Adding the instance objects of class Employee in list
list.add(new Employee(10, "Akshay")));
list.add(new Employee(40, "Bob")));
list.add(new Employee(20, "Priyansh")));
list.add(new Employee(50, "Chandni")));
list.add(new Employee(70, "Yashi")));
Collections.sort(list);
// Printing the sorted list on Console
System.out.println(list);

ieşire:

Concluzie

Explicați mai sus sunt Sortarea în Java metode care sunt utilizate în Java pentru mai multe scenarii de Array-uri și Colecții. Un programator trebuie să țină cont de cum trebuie utilizată metoda sort () pentru diferite tipuri de colecție. Cu Java 8, sortarea se poate face și prin Lambdas pentru a implementa interfața Comparator, ceea ce facilitează sortarea. Deși este un pic dificil să înveți toate, poate fi ușor să lucrezi cu ei dacă toate conceptele de bază ale Java, în special fluxul de date, Array-uri și Colecții sunt clare. Deși algoritmii de sortare sunt pereni și pot fi implementați cu ușurință în alte limbaje de programare, precum Java, acestea au o complexitate diferită, iar funcția () de funcții Java încorporată facilitează lucrurile dacă conceptele de bază sunt învățate de la inimă.

Articole recomandate

Acesta este un ghid pentru Sortarea în Java. Aici vom discuta despre performanța sortării în java și tipurile de sortare în java cu coduri și ieșiri diferite. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. JComboBox în Java
  2. Sortare în C
  3. Sortare pentru grămadă în C
  4. Sortare cu bule în JavaScript
  5. Ce este sortarea în C ++?
  6. Introducere în Sortare în PHP
  7. Sort de grămadă în Python
  8. Sortare inserție în JavaScript
  9. Hashmap în Java
  10. Comparabil în Exemplu Java | Interfață de colectare în Java