Uvod u sortiranje na Javi

  • Razvrstavanje u Javi u osnovi je organiziranje skupine elemenata pohranjenih negdje određenim redoslijedom, ovaj redoslijed može biti i uzlazni ili silazni. Dolazi mnogo scenarija u programiranju u stvarnom vremenu gdje postoji potreba za sortiranjem elemenata jer traži i pretraživanje određeni element je jednostavan, jer se elementi lako pronalaze indeksom nizova, ako su razvrstani. Elementi koje je potrebno sortirati mogu se pohraniti u niz ili u zbirku. Zbirka je različitih vrsta u setovima sličnim Java-u, drveću, mapi, heap-u, popisu itd. Iako postoje različite vrste algoritma za sortiranje koji se koriste za razvrstavanje elemenata u Bubble Sort, sortiranje, sortiranje, vrsta umetanja, Sortiranje odabira, Sortiranje spajanja itd.
  • Programeri koriste različite algoritme za razvrstavanje elemenata prema njihovim specifičnim zahtjevima i složenosti algoritama. Ovi algoritmi razvrstavanja implementirani su korištenjem različitih petlji i varijabli za ponavljanje kroz njih. Osim što koristi algoritme sortiranja za razvrstavanje elemenata u nizu, Java pruža ugrađenu funkciju sortiranja koja može pomoći kod iste i programeru ne treba biti zaglavljen u velikim petljama i razmišljati o složenosti. Da, dobro ste čuli, u Javi se funkcija sort () koristi za razvrstavanje elemenata pohranjenih u nizovima ili zbirkama i to s vrlo manjom složenošću o (n (logn)). Iako je provedba metode u obje malo drugačija.

Sintaksa za nizove:

Arrays.sort(array_name);

Za kolekcije

Collections.sort(array_name_list);

  • Ovdje array_name i array_name_list je naziv matrice ili zbirke koju treba razvrstati.
  • Nizovi su naziv Java klasa.
  • Zbirka je okvir u Javi.
  • sort () je ugrađena funkcija sortiranja koja se koristi u Javi.

Kako se sortira na Javi?

Evo sljedećih točaka:

  • Korištenjem algoritma za sortiranje, sortiranje se može izvoditi i s algoritmima koji variraju od neučinkovitih do učinkovitih, a svaki algoritam ima svoju složenost vremena i prostora.
  • Ponekad su ti algoritmi vrlo složeni i ne mogu se koristiti u stvarnim scenarijima gdje je potrebno obraditi velike količine podataka.
  • Kao što je gore spomenuto, u funkciji ugrađenoj u Javu, sort () koristi se za razvrstavanje svih elemenata Array i kolekcije. Prema službenom Java DOC-u, Array.sort koristi quicksort koji je dvostruko vrti i relativno je brži od brzog sortiranja s jednim okretom.
  • Jedna od najvećih prednosti toga je što pruža složenost O (n (logn)). Koristi vrlo stabilnu i iterativnu implementaciju array objekta Merge Sort. Java pruža metodu za sortiranje nizova i obrnutim redoslijedom, prema zahtjevu programera za sortiranje u uzlaznom ili silaznom redoslijedu. Metoda Collections.reverseOrder () koristi se za razvrstavanje elemenata obrnutim ili silaznim redoslijedom.
  • Java 8 također pruža mogućnost sortiranja nizova paralelno korištenjem Parallel razvrstavanja koje koristi višeslojni koncept Java i dijeli čitav niz na dijelove i spaja ih nakon razvrstavanja.

Vrste sortiranja na Javi

Ispod su navedeni neki od načina na koje se sortiranje može provesti u Sortiranju na Javi:

1. sortirati (ime niza)

Koristi se za sortiranje čitavog niza u uzlaznom redoslijedu. Ova metoda sortira elemente matrice u uzlaznom redoslijedu.

Kodirati:

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

Izlaz:

2. Collection.reverseOrder ()

Ova metoda u Javi koristi se za razvrstavanje niza obrnutim ili silaznim redoslijedom. Postoje scenariji u kojima moramo elemente sortirati silaznim redoslijedom, a Java to čini pomoću ugrađene metode.

Kodirati:

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

Izlaz:

3. sortirati (int () ime array, int findex, int lindex)

Ako je potrebno sortirati dio dijela umjesto cijele matrice, Java pruža mogućnost sortiranja ove vrste polja određivanjem 3 parametra, tj. Naziva matrice, prvog indeksa odakle sortiranje treba započeti i posljednjeg indeksati do kad treba izvršiti razvrstavanje.

Kodirati:

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

Izlaz:

4. Arrays.parllelSort (ime niza)

Iz Java 8 izdan je novi API paralelne vrste. U osnovi u paralelnom redoslijedu, niz se dijeli na 2 podreda, a zatim osnovnu funkciju Array.sort () obavlja zasebna nit. Poredani nizovi na kraju se spajaju na način da formiraju potpuno razvrstani niz. To se radi kako bi se iskoristila upotreba višeslojnih navoja.

Kodirati:

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

Izlaz:

Poput uobičajenog Array.sort (), Arrays.parallelSort () također pruža mogućnost sortiranja određenog raspona matrike ili sortiranja niza obrnutim redoslijedom.

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

Ova metoda se koristi za razvrstavanje zbirki poput popisa, mapa, skupa itd. Koristi sortiranje spajanja i daje istu složenost kao Array.sort (), tj. O (n (logn)).

1. Razvrstavanje popisa uzlaznim redoslijedom

Kodirati:

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

Izlaz:

2. Razvrstavanje popisa nizova u silaznom redoslijedu

Kodirati:

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

Izlaz:

3. Razvrstavanje skupa

Postoje 3 osnovna pravila dok razvrstavate kolekciju 'Set' koristeći gornju metodu sortiranja (naziv array_name):

    1. Pretvorite Set u popis.
    2. Poredajte popis pomoću metode sortiranja (ime_rezime).
    3. Pretvorite rezultirani sortirani popis natrag u Set.

Kodirati:

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

Izlaz:

4. Poredaj kartu

Zbirka karata u Javi kombinacija je ključa i vrijednosti. Dakle sortiranje se može obaviti ili putem ključa ili vrijednosti.

  • Poredaj kartu po ključu: Pogledajmo donji primjer sortiranja karte po ključu.

Kodirati:

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

Izlaz:

Jedan od najjednostavnijih načina sortiranja elemenata karte pomoću tipki je dodavanjem nesortiranih elemenata karte u TreeMap. TreeMap automatski razvrstava elemente po uzlaznom redoslijedu ključeva. Iako se collection.sort () također može koristiti za isto, pomalo je složen i treba ga dobro kodirati.

  • Poredavanje karte prema vrijednosti: Ispod je primjer kako se sortiranje može izvršiti na karti pomoću vrijednosti.

Kodirati:

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

Izlaz:

U gornjem primjeru razvrstavanja karte prema vrijednosti, najprije smo postavili unose pomoću metode map.entrySet (), a zatim struji tih unosa pomoću metode stream (), pozvali sortirani niz pomoću metode sorted (), uspoređujući prema vrijednosti u par. jer se svaki naručeni () koristi za prelazak struje radi dobivanja rezultata.

5. Usporedivo

Usporedivo je sučelje i čini klase usporedivim s njegovim primjerima.

Za usporedbu dva slučaja iste klase potrebno je implementirati Usporedno sučelje i treba nadvladati metodu сравнениеTo (). Klase koje implementiraju ovo sučelje, njegov popis objekata automatski se razvrstavaju metodom Collections.sort () i Arrays.sort ().

Kodirati:

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

Izlaz:

Zaključak

Objašnjeno su gore metode sortiranja u Javi koje se u Javi koriste za više scenarija nizova i zbirki. Programer mora imati na umu kako se metoda sort () treba koristiti za različite tipove kolekcija. S Java 8, sortiranje se može obaviti i putem Lambdas-a za implementaciju Comparator sučelja, što olakšava sortiranje. Iako je malo teško naučiti ih sve, s njima je lako raditi ako su jasni svi osnovni pojmovi Jave, posebno strujanje podataka, nizovi i zbirke. Iako su algoritmi sortiranja zimzeleni i mogu se lako implementirati u drugim programskim jezicima sličnim Javi, oni imaju različitu složenost i ugrađenu vrstu funkcije () u Javi olakšava stvari ako se osnovni pojmovi nauče napamet.

Preporučeni članci

Ovo je vodič za sortiranje na Javi. Ovdje smo raspravljali o načinu sortiranja u javi i vrstama sortiranja u javi s različitim kodovima i izlazima. Možete i proći kroz naše druge povezane članke da biste saznali više -

  1. JComboBox na Javi
  2. Razvrstavanje u C
  3. Poredaj na C
  4. Bubble Sort in JavaScript
  5. Što je sortiranje u C ++?
  6. Uvod u sortiranje u PHP-u
  7. Poredajte u Python
  8. Poredak umetanja u JavaScript
  9. Hashmap na Javi
  10. Usporedivo u primjeru Java | Kolekcijsko sučelje u Javi

Kategorija: