Introduktion til sortering i Java

  • Sortering i Java er dybest set en gruppe af elementer, der er gemt et eller andet sted i en bestemt rækkefølge, denne rækkefølge kan være både stigende eller faldende. Der kommer mange scenarier i realtidsprogrammering, hvor det bliver nødvendigt at sortere elementerne, da det også gør at søge efter et bestemt element let, da elementerne let kan hentes ved indeks over arrays direkte, hvis de sorteres. Elementer, der skal sorteres, kan gemmes enten i en matrix eller i en samling. Samlingen er af mange typer i Java-lignende sæt, træ, kort, bunke, liste osv. Selvom der er forskellige typer sorteringsalgoritmer, der bruges til at sortere elementerne i en matrixlignende boble sortering, heap sortering, indsættelse sortering, Markering, sortering osv.
  • Programmerere bruger forskellige algoritmer til at sortere elementerne i henhold til deres specifikke krav og kompleksitet af algoritmer. Disse sorteringsalgoritmer implementeres ved hjælp af forskellige sløjfer og variabler til at itereere gennem den. Bortset fra at bruge sorteringsalgoritmerne til at sortere elementerne i en matrix, giver Java den indbyggede funktion af sortering, som kan hjælpe med det samme, og programmereren behøver ikke at sidde fast i store løkker og tænke over kompleksitet. Ja, du hørte rigtigt, i Java sortering () -funktion bruges til at sortere de elementer, der er gemt enten i arrays eller samlinger, og det med meget mindre kompleksitet af o (n (logn)). Selvom implementeringen af ​​metoden i begge dele er en smule anderledes.

Syntaks til arrays:

Arrays.sort(array_name);

Til samlinger

Collections.sort(array_name_list);

  • Her er array_name og array_name_list navnet på arrayet eller den samling, der skal sorteres.
  • Arrays er navnet på Java-klasser.
  • Samlingen er en ramme i Java.
  • sort () er den indbyggede sorteringsfunktion, der bruges i Java.

Hvordan udføres sortering i Java?

Følgende er punkterne som følger:

  • Gennem brug af sorteringsalgoritmer kan sortering også udføres med algoritmer, der varierer fra ineffektiv til effektiv, og hver algoritme har sin egen tid og rumkompleksitet.
  • Undertiden har disse algoritmer meget stor kompleksitet, at de ikke kan bruges i virkelige scenarier, hvor der er behov for at håndtere store mængder data.
  • Som nævnt ovenfor, i Java-indbygget funktion, bruges sortering () til at sortere alle elementerne i en Array og samling. I henhold til den officielle Java DOC bruger Array.sort quicksort, som er den dobbelte drejning og relativt meget hurtigere end den enkelt-pivot Quick Sort.
  • En af de største fordele ved dette er, at det giver en kompleksitet af O (n (logn)). Den bruger den meget stabile og iterative implementering af array-objektet i Merge Sort. Java tilvejebringer en metode til at sortere matrixen i omvendt rækkefølge også efter krav fra programmereren til at sortere enten i stigende eller faldende rækkefølge. Metoden Collections.reverseOrder () bruges til at sortere elementerne i omvendt eller faldende rækkefølge.
  • Java 8 giver også mulighed for at sortere matriserne parallelt ved hjælp af Parallel-sorteringen, der bruger Java-flertrådskonceptet og opdeler hele matrixen i dele og fletter dem sammen efter sortering.

Typer af sortering i Java

Nedenfor er nævnt nogle af måderne, hvorpå sortering kan udføres i sortering i Java:

1. sortering (array_name)

Dette bruges til at sortere det komplette array i stigende Som standard sorterer denne metode arrayelementerne i stigende rækkefø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));
)
)

Produktion:

2. Collection.reverseOrder ()

Denne metode i Java bruges til at sortere matrixen i omvendt rækkefølge eller faldende rækkefølge. Der er scenarier, hvor vi er nødt til at sortere elementerne i faldende rækkefølge, og Java gør det gennem den indbyggede metode.

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

Produktion:

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

Hvis der er behov for at sortere en del af en matrix i stedet for hele matrixen, giver Java mulighed for at sortere denne type array ved at specificere 3 parametre, dvs. array-navn, første indeks, hvorfra sorteringen skal startes og den sidste indeks indtil sorteringen skal udfø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));
)

Produktion:

4. Arrays.parllelSort (array_name)

Fra Java 8 er den nye API af parallel sortering blevet frigivet. Grundlæggende i parallelsortering er arrayet opdelt i 2 underarrays, og derefter udføres den grundlæggende Array.sort () -funktion af en separat tråd. De sorterede arrays flettes derefter til sidst for at danne den fuldt sorterede matrix. Dette gøres for at udnytte brugen af ​​multitråde.

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

Produktion:

Som et normalt Array.sort () giver Arrays.parallelSort () også mulighed for at sortere et bestemt område af array eller sortere en matrix i omvendt rækkefø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 metode bruges til at sortere samlingerne som liste, kort, sæt osv. Den bruger flettsorteringen og giver den samme kompleksitet som Array.sort (), dvs. O (n (logn)).

1. Sortering af en liste i stigende rækkefø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);
)
)

Produktion:

2. Sortering af en matrixliste i faldende rækkefø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);
)
)

Produktion:

3. Sortering af sæt

Der er 3 grundlæggende regler, når du sorterer en samling 'Sæt' ved hjælp af ovennævnte metodesortering (array_name):

    1. Konverter sæt til listen.
    2. Sorter listen ved hjælp af metoden sortering (array_name).
    3. Konverter den resulterende sorterede liste tilbage til Sæt.

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

Produktion:

4. Sorter et kort

Samlingskort i Java er en kombination af nøgle og værdi Så sortering kan udføres begge veje enten gennem nøgle eller efter værdi.

  • Sorter et kort efter nøgle: Lad os se nedenstående eksempel på sortering af et kort efter nøgle.

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

Produktion:

En af de nemmeste måder at sortere kortets elementer efter nøgler er ved at tilføje de usorterede kortelementer i TreeMap. TreeMap sorterer automatisk elementerne i stigende rækkefølge af Hash Keys. Selvom collection.sort () også kan bruges til at gøre det samme, er det noget kompliceret og skal kodes godt.

  • Sorter et kort efter værdi: Nedenfor nævnt er et eksempel på, hvordan sorteringen kan udføres på et kort ved hjælp af værdi.

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

Produktion:

I ovenstående eksempel på sortering af kort efter værdi indstiller vi først posterne ved hjælp af map.entrySet () og derefter strøm af disse poster ved hjælp af stream () -metoden, kalder den sorterede matrix ved hjælp af sorteret () -metoden ved at sammenligne efter værdi i par. for hver bestilt () bruges til at krydse strømmen for at producere resultatet.

5. Sammenlignelig

Sammenlignelig er en grænseflade, og det gør klasserne sammenlignelige med dens tilfælde.

For at sammenligne de to forekomster af den samme klasse skal der sammenlignes interface, og metoden sammenligne To () skal tilsidesættes. De klasser, der implementerer denne grænseflade, dens liste over objekter sorteres automatisk ved hjælp af 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);

Produktion:

Konklusion

Ovenfor er forklaret sortering i Java-metoder, der bruges i Java til flere scenarier af arrays og samlinger. En programmerer skal huske, hvordan sorteringsmetoden () -metoden skal bruges til forskellige samlingstyper. Med Java 8 kan sortering også udføres gennem Lambdas for at implementere Comparator-interface, hvilket gør sorteringen lettere. Selvom det er lidt vanskeligt at lære dem alle, kan det være let at arbejde med dem, hvis alle de grundlæggende koncepter i Java, især datastrømning, Arrays og Collections, er klare. Selvom sorteringsalgoritmer er stedsegrønne og let kan implementeres på Java-lignende programmeringssprog, har de varierende kompleksitet, og den indbyggede funktionssortering () af Java gør tingene lettere, hvis de grundlæggende koncepter læres udefra.

Anbefalede artikler

Dette er en guide til sortering i Java. Her diskuterer vi, hvordan sortering udføres i java og typer af sortering i java med forskellige koder og output. Du kan også gennemgå vores andre relaterede artikler for at lære mere-

  1. JComboBox i Java
  2. Sorterer i C
  3. Heap Sort in C
  4. Bubble Sorter i JavaScript
  5. Hvad er sortering i C ++?
  6. Introduktion til sortering i PHP
  7. Heap Sort i Python
  8. Indsættelse Sorter i JavaScript
  9. Hashmap i Java
  10. Sammenlignelig i Java-eksempel | Samling interface i Java

Kategori: