Uvod v razvrščanje na Javi

  • Razvrščanje v Javi je v osnovi razporeditev skupine elementov, shranjenih nekje v določenem zaporedju, ta vrstni red je lahko tako naraščajoč ali padajoč. V programih v realnem času obstaja veliko scenarijev, kjer je treba razvrstiti elemente, saj išče tudi iskanje določen element je enostaven, saj je elemente mogoče enostavno najti z indeksom nizov, če jih razvrstimo. Elemente, ki jih je treba razvrstiti, lahko shranite v matriko ali zbirko. Zbirka je v Javah podobnih setih, dreves, zemljevidih, kopici, seznamu itd. Različnih vrst, čeprav obstajajo različne vrste algoritmov za razvrščanje, ki se uporabljajo za razvrščanje elementov v poljubnem Bubble Sort, Heap Sort, Insertion Sort, Razvrsti izbire, Razvrsti združevanje itd.
  • Programerji uporabljajo različne algoritme za razvrščanje elementov glede na njihove posebne zahteve in zapletenost algoritmov. Ti algoritmi za razvrščanje se izvajajo z uporabo različnih zank in spremenljivk, da se skozi njega ponavljajo. Poleg tega, da uporablja algoritme za razvrščanje elementov v nizu, Java ponuja vgrajeno funkcijo razvrščanja, ki ji lahko pomaga pri enakem, programerju pa ni treba zapirati v velike zanke in razmišljati o zapletenosti. Da, prav ste slišali, v Javi se funkcija sort () uporablja za razvrščanje elementov, shranjenih v matrikah ali zbirkah, in z zelo manjšo zapletenostjo o (n (logn)). Čeprav je izvajanje metode pri obeh nekoliko drugačno.

Sintaksa za matrike:

Arrays.sort(array_name);

Za zbirke

Collections.sort(array_name_list);

  • Tu je ime matrike in ime_ime_ime ime matrike ali zbirke, ki jo je treba razvrstiti.
  • Nizi so ime razredov Java.
  • Zbirka je okvir na Javi.
  • sort () je vgrajena funkcija razvrščanja, ki se uporablja v Javi.

Kako se razvrščanje izvaja na Javi?

Sledijo točke:

  • Z uporabo algoritmov za razvrščanje lahko razvrstimo tudi z algoritmi, ki se razlikujejo od neučinkovitih do učinkovitih, vsak algoritem pa ima svojo časovno in prostorsko zapletenost.
  • Včasih so ti algoritmi zelo zapleteni, zato jih ni mogoče uporabiti v resničnih scenarijih, kjer je treba obdelati velike količine podatkov.
  • Kot že omenjeno, se v vgrajeni funkciji Java za sortiranje vseh elementov Array in zbirke uporablja sort (). Po uradnem jeziku Java DOC Array.sort uporablja quicksort, ki je dvojno vrtišče in so razmeroma veliko hitrejši od hitrega razvrščanja z enim vrtilom.
  • Ena največjih prednosti tega je, da zagotavlja kompleksnost O (n (logn)). Uporablja zelo stabilno in iterativno izvedbo array objekta Merge Sort. Java ponuja način razvrščanja matrike tudi v obratnem vrstnem redu glede na zahteve programerja, da se razvrsti po naraščajočem ali padajočem vrstnem redu. Metoda Collections.reverseOrder () se uporablja za razvrščanje elementov v obratnem ali padajočem vrstnem redu.
  • Java 8 ponuja tudi možnost razvrščanja nizov vzporedno z razvrščanjem Vzporedno, ki uporablja koncept Java z več nitmi in deli celoten niz na dele in jih po razvrščanju združi.

Vrste razvrščanja na Javi

Spodaj je omenjenih nekaj načinov, s katerimi lahko razvrstite v razvrščanju na Javi:

1. razvrsti (ime matrice)

Ta metoda se uporablja za razvrščanje celotnega niza v naraščajočem. Ta metoda privzeto razvrsti elemente matrike v naraščajočem vrstnem redu.

Koda:

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

Izhod:

2. Collection.reverseOrder ()

Ta metoda v Javi se uporablja za razvrščanje matrike v obratnem ali padajočem vrstnem redu. Obstajajo scenariji, kjer moramo elemente razvrstiti po padajočem vrstnem redu, Java pa to stori po vgrajeni metodi.

Koda:

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

Izhod:

3. sortiraj (int () ime_nahoda, int findex, int lindex)

Če obstaja potreba po razvrščanju nekega dela matrike namesto celotnega niza, Java zagotavlja objekt, da razvrsti to vrsto matrike tako, da navede 3 parametre, tj. Ime matrike, prvi indeks, od koder je treba razvrščati in zadnji indeks do kdaj je treba razvrstiti.

Koda:

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

Izhod:

4. Arrays.parllelSort (ime matrice)

Iz Java 8 je izdan novi API vzporedne vrste. V osnovi pri vzporedni razvrstitvi je matrika razdeljena na 2 podračuni, nato pa osnovno funkcijo Array.sort () izvaja ločena nit. Razvrščeni nizi se nato na koncu združijo, da tvorijo popolnoma razvrščen niz. To se naredi za povečanje uporabe večreznih navojev.

Koda:

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

Izhod:

Tako kot običajni Array.sort () tudi Arrays.parallelSort () omogoča, da razvrsti določen obseg matrike ali razvrsti matriko v obratnem vrstnem redu.

Sintaksa:

// 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. Zbirka.sort ()

Ta metoda se uporablja za razvrščanje zbirk, kot so seznam, zemljevid, Set itd. Uporablja sortiranje združevanja in daje enako zapletenost kot Array.sort (), to je O (n (logn)).

1. Razvrščanje seznama v naraščajočem vrstnem redu

Koda:

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

Izhod:

2. Razvrščanje matričnega seznama po padajočem vrstnem redu

Koda:

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

Izhod:

3. Razvrščanje niza

Ob razvrščanju zbirke 'Set' s pomočjo zgornje metode razvrstitve (ime array_name) obstajajo tri osnovna pravila:

    1. Pretvori spremenite v seznam.
    2. Seznam razvrstite z načinom sortiranja (ime_restave).
    3. Pretvorite dobljeni razvrščeni seznam nazaj v Nastavi.

Koda:

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

Izhod:

4. Razvrstite zemljevid

Zemljevid zbirke v Javi je kombinacija ključa in vrednosti, zato lahko razvrščanje izvajate v obeh smereh prek ključa ali vrednosti.

  • Razvrsti zemljevid po ključu: Oglejmo si spodnji primer razvrščanja zemljevida po ključu.

Koda:

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

Izhod:

Eden najlažjih načinov razvrščanja elementov Zemljevida s ključi je dodajanje nesortiranih elementov zemljevida v TreeMap. TreeMap samodejno razvrsti elemente v naraščajočem vrstnem redu Hash Keys. Čeprav je za to mogoče uporabiti tudi collection.sort (), je nekoliko zapleteno in ga je treba dobro kodirati.

  • Razvrstite zemljevid po vrednosti: Spodaj je naveden primer, kako lahko razvrstite v zemljevidu z uporabo vrednosti.

Koda:

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

Izhod:

V zgornjem primeru razvrščanja Zemljevida po vrednosti najprej postavimo vnose z uporabo metode map.entrySet () in nato tok teh vnosov po metodi stream (), pokličimo razvrščeno matriko po metodi sorted () s primerjavo po vrednosti v par. vsaka naročena () se uporablja za prečkanje toka za ustvarjanje rezultata.

5. Primerljivo

Primerljiv je vmesnik, zaradi česar so razredi primerljivi z njegovimi primerki.

Za primerjavo dveh primerkov istega razreda je treba implementirati primerljiv vmesnik in prevladati metodo CompareTo (). Razredi, ki izvajajo ta vmesnik, njegov seznam predmetov se samodejno razvrstijo po metodi Collections.sort () in Arrays.sort ().

Koda:

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

Izhod:

Zaključek

Zgoraj so pojasnjene metode razvrščanja v Javi, ki se uporabljajo v Javi za več scenarijev nizov in zbirk. Programer mora imeti v mislih, kako naj se metoda sort () uporablja za različne tipe zbirke. Pri Java 8 lahko razvrščanje izvajate tudi prek Lambdas za uporabo vmesnika Comparator, kar olajša razvrščanje. Čeprav jih je težko naučiti vse, je delo z njimi enostavno, če so jasni vsi osnovni pojmi Jave, zlasti pretakanje podatkov, Arrays in Collections. Čeprav so algoritmi razvrščanja zimzeleni in jih je mogoče enostavno izvajati v drugih programijskih jezikih, podobnih Javi, imajo različno kompleksnost in vgrajena funkcija funkcij () Java olajša stvari, če se osnovnih pojmov naučijo na pamet.

Priporočeni članki

To je vodnik za razvrščanje na Javi. Tukaj razpravljamo o uspešnosti razvrščanja v javi in ​​vrstah razvrščanja v javi z različnimi kodami in izhodi. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. JComboBox na Javi
  2. Razvrščanje v C
  3. Razvrstite v C
  4. Bubble Razvrsti v JavaScript
  5. Kaj je razvrščanje v C ++?
  6. Uvod v razvrščanje v PHP
  7. Razvrstite v Python
  8. Razvrsti vstavljanje v JavaScript
  9. Hashmap v Javi
  10. Primerljivo v primeru Java | Zbirni vmesnik na Javi