Úvod do triedenia v Jave

  • Triedenie v Jave je v zásade usporiadaním skupiny prvkov uložených niekde v určitom poradí, toto poradie môže byť vzostupné alebo zostupné. V programovaní v reálnom čase prichádza veľa scenárov, kde je potrebné triediť prvky, pretože tiež hľadá konkrétny prvok je ľahký, pretože prvky je možné ľahko získať indexom polí priamo, ak sú usporiadané. Prvky, ktoré je potrebné triediť, sa môžu ukladať do poľa alebo do kolekcie. Zbierka je mnohých typov v sadách podobných Java, stromoch, mapách, haldy, zoznamoch atď. Aj keď existujú rôzne typy algoritmov triedenia, ktoré sa používajú na triedenie prvkov v poli, ako je napríklad bublinkové usporiadanie, triedenie haldy, vkladanie., Výber zoradenia, Zlúčiť zoradenie atď.
  • Programátori používajú rôzne algoritmy na usporiadanie prvkov podľa ich konkrétnych požiadaviek a zložitosti algoritmov. Tieto triediace algoritmy sa implementujú pomocou rôznych slučiek a premenných na iteráciu cez ňu. Okrem použitia triediacich algoritmov na triedenie prvkov v poli Java poskytuje zabudovanú funkciu triedenia, ktorá môže s tým pomôcť, a programátor nemusí byť zaseknutý vo veľkých slučkách a premýšľať o zložitosti. Áno, počuli ste správne, v Java sort () sa funkcia používa na triedenie prvkov uložených v poliach alebo kolekciách a to s veľmi menšou zložitosťou o (n (logn)). Implementácia metódy v oboch je trochu iná.

Syntax pre polia:

Arrays.sort(array_name);

Pre zbierky

Collections.sort(array_name_list);

  • Pole array_name a array_name_list je názov poľa alebo kolekcie, ktoré je potrebné triediť.
  • Polia sú názvy tried Java.
  • Zbierka je rámcom v jazyku Java.
  • sort () je vstavaná funkcia triedenia používaná v jazyku Java.

Ako sa triedenie vykonáva v jazyku Java?

Nasledujú nasledujúce body:

  • Použitím triediacich algoritmov sa triedenie môže vykonávať aj s algoritmami, ktoré sa líšia od neefektívnych po efektívne a každý algoritmus má svoju časovú a priestorovú zložitosť.
  • Niekedy majú tieto algoritmy veľmi vysokú zložitosť, že ich nemožno použiť v reálnych scenároch, kde je potrebné spracovať veľké množstvo údajov.
  • Ako je uvedené vyššie, v zabudovanej funkcii Java sa sort () používa na triedenie všetkých prvkov poľa a zbierky. Podľa oficiálneho Java DOC, Array.sort používa quicksort, ktorý je dvojitým otočným čapom a porovnateľne oveľa rýchlejší ako jednokolový rýchly zoradenie.
  • Jednou z najväčších výhod je to, že poskytuje komplexnosť O (n (logn)). Používa veľmi stabilnú a iteračnú implementáciu poľa objektu Merge Sort. Java poskytuje metódu na zoradenie poľa v opačnom poradí podľa požiadavky programátora, aby sa usporiadal vzostupne alebo zostupne. Metóda Collections.reverseOrder () sa používa na zoradenie prvkov v opačnom alebo zostupnom poradí.
  • Java 8 poskytuje tiež možnosť triediť polia paralelne pomocou Parallel Sorting, ktoré používa multithreadingový koncept Java a rozdeľuje celé pole na časti a po triedení ich spája.

Druhy triedenia v Jave

Nižšie sú uvedené niektoré zo spôsobov, ako je možné triedenie vykonávať v triedení v jazyku Java:

1. sort (array_name)

Používa sa na zoradenie celého poľa vzostupne V predvolenom nastavení táto metóda triedi prvky poľa vzostupne.

kód:

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));
)
)

Výkon:

2. Collection.reverseOrder ()

Táto metóda v jazyku Java sa používa na zoradenie poľa v opačnom poradí alebo v zostupnom poradí. Existujú scenáre, kde musíme zoradiť prvky v zostupnom poradí a Java to robí pomocou vstavanej metódy.

kód:

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));
)
)

Výkon:

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

Ak je potrebné radiť niektorú časť poľa namiesto celého poľa, Java poskytuje možnosť triediť tento typ poľa zadaním 3 parametrov, tj názvu poľa, prvého indexu, od ktorého sa musí začať triedenie a posledného. index až do okamihu, keď je potrebné vykonať triedenie.

kód:

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));
)

Výkon:

4. Arrays.parllelSort (array_name)

Z Java 8 bolo vydané nové API paralelného triedenia. V podstate pri paralelnom zoradení je pole rozdelené do 2 čiastkových polí a potom je základná funkcia Array.sort () vykonaná samostatným vláknom. Zoradené polia sa na konci zlúčia a vytvoria úplne zoradené pole. Deje sa tak, aby sa využilo viaczávitové vlákno.

kód:

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));
)
)

Výkon:

Rovnako ako normálny Array.sort () aj Arrays.parallelSort () poskytuje zariadenie na zoradenie konkrétneho rozsahu poľa alebo zoradenie poľa v opačnom poradí.

syntaxe:

// 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 ()

Táto metóda sa používa na triedenie kolekcií, ako sú zoznam, mapa, množina atď. Používa zlučovacie zoradenie a poskytuje rovnakú zložitosť ako Array.sort (), tj O (n (logn)).

1. Zoradenie zoznamu vo vzostupnom poradí

kód:

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);
)
)

Výkon:

2. Triedenie zoznamu polí v zostupnom poradí

kód:

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);
)
)

Výkon:

3. Triedenie súpravy

Pri triedení kolekcie „Set“ pomocou vyššie uvedeného spôsobu triedenia (array_name) existujú 3 základné pravidlá:

    1. Skonvertujte súbor do zoznamu.
    2. Zoradiť zoznam pomocou metódy sort (array_name).
    3. Skonvertujte výsledný zoradený zoznam späť na Set.

kód:

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);
)
)

Výkon:

4. Zoradenie mapy

Zbierka Zbierka v Jave je kombináciou kľúča a hodnoty, takže triedenie je možné vykonať oboma spôsobmi, buď pomocou kľúča, alebo podľa hodnoty.

  • Zoradenie mapy podľa kľúča: Pozrime sa na príklad nižšie zoradenia mapy podľa kľúča.

kód:

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);
)
)

Výkon:

Jedným z najjednoduchších spôsobov zoradenia prvkov mapy podľa kľúčov je pridanie netriedených prvkov mapy do TreeMap. TreeMap automaticky triedi prvky vzostupne podľa Hash Keys. Aj keď collection.sort () sa dá použiť aj na to isté, je to trochu zložité a musí byť dobre kódované.

  • Zoradenie mapy podľa hodnoty: Nižšie je uvedený príklad toho, ako je možné zoradiť v mape pomocou hodnoty.

kód:

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()));

Výkon:

Vo vyššie uvedenom príklade triedenia mapy podľa hodnoty najprv nastavíme položky pomocou metódy map.entrySet () a potom tok týchto záznamov pomocou metódy stream (), zavolajte zoradené pole pomocou metódy sort () porovnaním podľa hodnoty v pair. pre každý zoradený znak () sa používa na prechod prúdom na dosiahnutie výsledku.

5. Porovnateľné

Porovnateľné je rozhranie a robí triedy porovnateľnými s jeho príkladmi.

Na porovnanie dvoch inštancií tej istej triedy je potrebné implementovať porovnateľné rozhranie a je potrebné prepísať metódu CompareTo (). Triedy, ktoré implementujú toto rozhranie, jeho zoznam objektov, sa triedia automaticky pomocou metódy Collections.sort () a Arrays.sort ().

kód:

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);

Výkon:

záver

Vyššie sú vysvetlené metódy triedenia v jazyku Java, ktoré sa používajú v jazyku Java pre viaceré scenáre polí a kolekcií. Programátor si musí uvedomiť, ako by sa mala použiť metóda sort () pre rôzne typy kolekcií. S Java 8 je možné triedenie vykonávať aj pomocou Lambda, aby sa implementovalo rozhranie porovnávača, čo uľahčuje triedenie. Aj keď je trochu ťažké sa ich naučiť, môže byť ľahké s nimi pracovať, ak budú jasné všetky základné pojmy Java, najmä streamovanie dát, polia a zbierky. Aj keď sú triediace algoritmy vždy zelené a dajú sa ľahko implementovať v iných programovacích jazykoch Java, majú rôznu zložitosť a zabudovaná funkcia sort () Java uľahčuje veci, ak sa základné pojmy učia srdcom.

Odporúčané články

Toto je sprievodca triedením v jazyku Java. Tu diskutujeme o tom, ako triedenie funguje v jave a aké druhy triedenia v jave s rôznymi kódmi a výstupmi. Viac informácií nájdete aj v ďalších súvisiacich článkoch.

  1. JComboBox v Jave
  2. Triedenie v C.
  3. Halda Zoradiť podľa C.
  4. Bublina Zoradiť v JavaScripte
  5. Čo je triedenie v C ++?
  6. Úvod do triedenia v PHP
  7. Halda Zoradiť v Pythone
  8. Vloženie Zoradiť v JavaScripte
  9. Hashmap v Jave
  10. Porovnateľné v príklade Java Rozhranie kolekcie v jazyku Java

Kategórie: