Introduksjon til sortering i Java

  • Sortering i Java er i utgangspunktet å arrangere en gruppe elementer som er lagret et sted i en bestemt rekkefølge, denne rekkefølgen kan være både stigende eller synkende. Det kommer mange scenarier i sanntidsprogrammering der det blir en nødvendighet å sortere elementene da det også gjør å søke etter et bestemt element lett, ettersom elementene enkelt kan hentes ved å indeksere matriser direkte hvis de er sortert. Elementer som må sorteres, kan lagres enten i en matrise eller i en samling. Samlingen er av mange typer i Java-lignende sett, tre, kart, haug, liste osv. Selv om det er forskjellige typer sorteringsalgoritmer som brukes til å sortere elementene i en matrise-lignende boble sortering, heap sortering, innsetting sortering, Utvalgssortering, flettesortering osv.
  • Programmerere bruker forskjellige algoritmer for å sortere elementene i henhold til deres spesifikke krav og kompleksitet av algoritmer. Disse sorteringsalgoritmene implementeres ved bruk av forskjellige løkker og variabler for å itereere gjennom den. Bortsett fra å bruke sorteringsalgoritmer til å sortere elementene i en matrise, gir Java den innebygde funksjonen til sortering som kan hjelpe med det samme, og programmereren trenger ikke å sitte fast i store løkker og tenke på kompleksitet. Ja, du har hørt riktig, i Java sortering () -funksjonen brukes til å sortere elementene som er lagret enten i matriser eller samlinger og det med veldig mindre kompleksitet o (n (logn)). Selv om implementeringen av metoden i begge deler er litt annerledes.

Syntax For Arrays:

Arrays.sort(array_name);

For samlinger

Collections.sort(array_name_list);

  • Her er array_name og array_name_list navnet på matrisen eller samlingen som må sorteres.
  • Arrays er navnet på Java-klasser.
  • Samlingen er et rammeverk i Java.
  • sort () er den innebygde sorteringsfunksjonen som brukes i Java.

Hvordan sortering utføres i Java?

Følgende er poengene som følger:

  • Gjennom bruk av sorteringsalgoritmer kan sortering også utføres med algoritmer som varierer fra ineffektiv til effektiv, og hver algoritme har sin egen tid og romkompleksitet.
  • Noen ganger har disse algoritmene veldig høy kompleksitet at de ikke kan brukes i virkelige scenarier der det er behov for å håndtere store datamengder.
  • Som nevnt ovenfor, i Java-innebygd funksjon, brukes sortering () til å sortere alle elementene i en matrise og samling. I følge den offisielle Java DOC bruker Array.sort quicksort som er den doble pivoten og relativt mye raskere enn den enkle pivoten Quick Sort.
  • En av de største fordelene med dette er at det gir en kompleksitet av O (n (logn)). Den bruker den veldig stabile og iterative implementeringen av array-objektet til Merge Sort. Java gir en metode for å sortere matrisen i omvendt rekkefølge også i henhold til kravet fra programmereren for å sortere enten i stigende eller synkende rekkefølge. Samlingen.reverseOrder () -metoden brukes til å sortere elementene i omvendt eller synkende rekkefølge.
  • Java 8 gir også muligheten til å sortere matriser parallelt ved bruk av Parallell-sorteringen som bruker multithreading-konseptet til Java og deler hele matrisen i deler og fusjonerer dem etter sortering.

Typer sortering i Java

Nedenfor nevnt er noen av måtene sortering kan utføres i Sortering i Java:

1. sorter (array_name)

Dette brukes til å sortere hele arrayet i stigende standard. Denne metoden sorterer arrayelementene i stigende rekkefølge.

Kode:

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

Produksjon:

2. Collection.reverseOrder ()

Denne metoden i Java brukes til å sortere matrisen i omvendt rekkefølge eller synkende rekkefølge. Det er scenarier der vi må sortere elementene i synkende rekkefølge, og Java gjør det gjennom den innebygde metoden.

Kode:

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

Produksjon:

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

Hvis det er behov for å sortere en del av en matrise i stedet for hele matrisen, gir Java muligheten til å sortere denne typen matrise ved å spesifisere 3 parametere, dvs. array-navn, første indeks der sorteringen må startes og den siste indeks til når sorteringen må gjøres.

Kode:

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

Produksjon:

4. Arrays.parllelSort (array_name)

Fra Java 8 er den nye API-en av den parallelle sorteringen utgitt. I parallell sortering deles matrisen i 2 delarrayer, og deretter utføres den grunnleggende Array.sort () -funksjonen av en egen tråd. De sorterte matriser blir deretter slått sammen til slutt for å danne den fullsorterte matrisen. Dette gjøres for å utnytte bruken av flertråd.

Kode:

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

Produksjon:

Som en vanlig Array.sort (), gir Arrays.parallelSort () også muligheten til å sortere et bestemt utvalg av matriser eller sortere en matrise i omvendt rekkefølge.

syntaks:

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

Denne metoden brukes til å sortere samlingene som liste, kart, sett osv. Den bruker sammenslåingssortering og gir samme kompleksitet som Array.sort (), dvs. O (n (logn)).

1. Sortere en liste i stigende rekkefølge

Kode:

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

Produksjon:

2. Sortere en matriseliste i synkende rekkefølge

Kode:

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

Produksjon:

3. Sortering av sett

Det er tre grunnleggende regler når du sorterer en samling 'Sett' ved hjelp av metoden sortering ovenfor (array_name):

    1. Konverter settet til listen.
    2. Sorter listen ved å bruke metodesortering (array_name).
    3. Konverter den resulterende sorterte listen tilbake til Sett.

Kode:

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

Produksjon:

4. Sorter et kart

Samlingskart i Java er en kombinasjon av nøkkel og verdi Så sortering kan gjøres begge veier enten gjennom nøkkel eller verdi.

  • Sorter et kart etter nøkkel: La oss se eksemplet nedenfor om å sortere et kart etter nøkkel.

Kode:

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

Produksjon:

En av de enkleste måtene å sortere elementene på kartet etter nøkler er ved å legge til de usorterte kartelementene i TreeMap. TreeMap sorterer automatisk elementene i stigende rekkefølge til Hash Keys. Selv om collection.sort () også kan brukes til å gjøre det samme, er det noe sammensatt og må kodes godt.

  • Sorter et kart etter verdi: Nedenfor nevnt er et eksempel på hvordan sorteringen kan gjøres på et kart ved hjelp av verdi.

Kode:

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

Produksjon:

I eksemplet ovenfor med sortering av kart etter verdi, setter vi først oppføringene ved hjelp av map.entrySet () og deretter strømmen av disse oppføringene ved å bruke stream () -metoden, kalle den sorterte matrisen ved hjelp av sortert () -metoden ved å sammenligne etter verdi i par. for hver bestilt () brukes til å krysse strømmen for å gi resultatet.

5. Sammenlignbar

Sammenlignbar er et grensesnitt, og det gjør klassene sammenlignbare med forekomstene.

For å sammenligne de to forekomstene av samme klasse, må det sammenlignes grensesnitt implementeres, og metoden sammenligne To () må overstyres. Klassene som implementerer dette grensesnittet, dets liste over objekter blir sortert automatisk ved hjelp av metoden Collections.sort () og Arrays.sort ().

Kode:

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

Produksjon:

Konklusjon

Forklaret ovenfor er Sortering i Java-metodene som brukes i Java for flere scenarier av Arrays og Collections. En programmerer må huske på hvordan sorteringsmetoden skal brukes for forskjellige samlingstyper. Med Java 8 kan sortering også gjøres gjennom Lambdas for å implementere Comparator-grensesnittet, noe som gjør sorteringen enklere. Selv om det er litt vanskelig å lære dem alle, kan det være enkelt å jobbe med dem hvis alle grunnleggende konsepter for Java, spesielt datastrømming, Arrays og Collections, er tydelige. Selv om sorteringsalgoritmer er eviggrønne og enkelt kan implementeres på Java-lignende programmeringsspråk, har de varierende kompleksitet, og den innebygde funksjonen sortering () av ​​Java gjør ting enklere hvis de grunnleggende konseptene læres utenat.

Anbefalte artikler

Dette er en guide til sortering i Java. Her diskuterer vi hvordan sortering utfører i java og typer sortering i java med forskjellige koder og utganger. Du kan også gå gjennom andre relaterte artikler for å lære mer-

  1. JComboBox i Java
  2. Sorterer i C.
  3. Heap Sort in C
  4. Bubble Sorter i JavaScript
  5. Hva er sortering i C ++?
  6. Introduksjon til sortering i PHP
  7. Heap Sort in Python
  8. Sett inn Sorter i JavaScript
  9. Hashmap i Java
  10. Sammenlignbar i Java-eksempel | Samlingsgrensesnitt i Java