logo

Arrays.sort() v Javi s primeri

Razred nizov je razred, ki vsebuje statične metode, ki se uporabljajo z matrikami za iskanje, razvrščanje, primerjavo, vstavljanje elementov ali vrnitev nizovne predstavitve matrike. Zato najprej določimo funkcije, kasneje pa bomo o njih razpravljali. Prisotni so na naslednji način java.util.Arrays razred. Tukaj bomo razpravljali o različnih zapletih z uporabo metoda sort() razreda Arrays .

Metoda Arrays.sort() je sestavljena iz dveh različic, pri kateri ena ne posreduje nobenih argumentov, kjer razvršča celotno matriko, naj bo to matrika celih števil ali niz znakov, če pa naj bi s to metodo razreda Arrays razvrstili določen del, potem ga preobremenimo in matriki posredujemo začetni in zadnji indeks.



Sintaksa: metoda sort().

Arrays.sort();>

Sintaksa: Preobremenjena metoda sort().

public static void sort(int[] arr, int from_Index, int to_Index) ;>

Parametri: Zahteva tri parametre, kot je mogoče zaznati iz sintakse, ki je naslednja:



  • Niz, ki ga želite razvrstiti
  • Indeks vključno prvega elementa, ki ga je treba razvrstiti (v nadaljnjem besedilu: from_index)
  • Indeks zadnjega elementa, ekskluzivnega, ki ga je treba razvrstiti (imenovan last_index)

Vrsta vračila: TO

Analiza kompleksnosti:

Časovna zapletenost: O(N log N)
Pomožni prostor: O(1)



Zdaj pa si oglejmo implementacijo funkcije sort() v različnih scenarijih razreda Arrays, kot sledi:

Primer 1:

Java




import> java.util.Arrays;> class> GFG {> >public> static> void> main(String args[])> >{> >int>[] arr = {>5>, ->2>,>23>,>7>,>87>, ->42>,>509> };> >System.out.println(>'The original array is: '>);> >for> (>int> num : arr) {> >System.out.print(num +>' '>);> >}> >Arrays.sort(arr);> >System.out.println(>' The sorted array is: '>);> >for> (>int> num : arr) {> >System.out.print(num +>' '>);> >}> >}> }>

>

>

Izhod

The original array is: 5 -2 23 7 87 -42 509 The sorted array is: -42 -2 5 7 23 87 509>

Časovna zapletenost: O(nlog(n)) kot kompleksnost arrays.sort()
Pomožni prostor: O(1)

Primer 2:

Java




// Java Program to Sort Array of Integers> // by Default Sorts in an Ascending Order> // using Arrays.sort() Method> // Importing Arrays class from the utility class> import> java.util.Arrays;> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Custom input array> >int>[] arr = {>13>,>7>,>6>,>45>,>21>,>9>,>101>,>102> };> >// Applying sort() method over to above array> >// by passing the array as an argument> >Arrays.sort(arr);> >// Printing the array after sorting> >System.out.println(>'Modified arr[] : '> >+ Arrays.toString(arr));> >}> }>

>

>

Izhod

Modified arr[] : [6, 7, 9, 13, 21, 45, 101, 102]>

Kompleksnost zgornje metode:

Časovna zapletenost: O(N log N)
Pomožni prostor: O(1)

Primer 3:

Java




// Java program to Sort a Subarray in Array> // Using Arrays.sort() method> // Importing Arrays class from java.util package> import> java.util.Arrays;> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Custom input array> >// It contains 8 elements as follows> >int>[] arr = {>13>,>7>,>6>,>45>,>21>,>9>,>2>,>100> };> >// Sort subarray from index 1 to 4, i.e.,> >// only sort subarray {7, 6, 45, 21} and> >// keep other elements as it is.> >Arrays.sort(arr,>1>,>5>);> >// Printing the updated array which is> >// sorted after 2 index inclusive till 5th index> >System.out.println(>'Modified arr[] : '> >+ Arrays.toString(arr));> >}> }>

>

>

Izhod

Modified arr[] : [13, 6, 7, 21, 45, 9, 2, 100]>

Kompleksnost zgornje metode:

Časovna zapletenost: O(nlog(n)) kot kompleksnost arrays.sort()
Pomožni prostor: O(1)

Primer 4:

Java




// Java program to Sort a Subarray in Descending order> // Using Arrays.sort()> // Importing Collections class and arrays classes> // from java.util package> import> java.util.Arrays;> import> java.util.Collections;> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Note that we have Integer here instead of> >// int[] as Collections.reverseOrder doesn't> >// work for primitive types.> >Integer[] arr = {>13>,>7>,>6>,>45>,>21>,>9>,>2>,>100> };> >// Sorts arr[] in descending order using> >// reverseOrder() method of Collections class> >// in Array.sort() as an argument to it> >Arrays.sort(arr, Collections.reverseOrder());> >// Printing the array as generated above> >System.out.println(>'Modified arr[] : '> >+ Arrays.toString(arr));> >}> }>

>

>

Izhod

Modified arr[] : [100, 45, 21, 13, 9, 7, 6, 2]>

Kompleksnost zgornje metode:

Časovna zapletenost: O(nlog(n)) kot kompleksnost arrays.sort()
Pomožni prostor: O(1)

prečrtana markdown

Primer 5:

Java




// Java program to sort an array of strings> // in ascending and descending alphabetical order> // Using Arrays.sort()> // Importing arrays and Collections class> // from java.util class> import> java.util.Arrays;> import> java.util.Collections;> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Custom input string> >String arr[] = {>'practice .techcodeview.com>,> >'www .techcodeview.com>,> >'code .techcodeview.com> };> >// Sorts arr[] in ascending order> >Arrays.sort(arr);> >System.out.println(>'Modified arr[] : '> >+ Arrays.toString(arr));> >// Sorts arr[] in descending order> >Arrays.sort(arr, Collections.reverseOrder());> >// Lastly printing the above array> >System.out.println(>'Modified arr[] :'> >+ Arrays.toString(arr));> >}> }>

>

>

Izhod

Modified arr[] : Modified arr[] :[www.techcodeview.com, practice.techcodeview.com, code.techcodeview.com]>

Kompleksnost zgornje metode:

Časovna zapletenost: O(nlog(n)) kot kompleksnost arrays.sort()
Pomožni prostor: O(1)

Nazadnje bomo v celoti implementirali metodo sort(), ker bomo tukaj deklarirali naše lastne definirane kriterije s pomočjo Primerjalni vmesnik .

Primer 6:

Java




// Java program to demonstrate Working of> // Comparator interface> // Importing required classes> import> java.io.*;> import> java.lang.*;> import> java.util.*;> // Class 1> // A class to represent a student.> class> Student {> >int> rollno;> >String name, address;> >// Constructor> >public> Student(>int> rollno, String name, String address)> >{> >// This keyword refers to current object itself> >this>.rollno = rollno;> >this>.name = name;> >this>.address = address;> >}> >// Used to print student details in main()> >public> String toString()> >{> >return> this>.rollno +>' '> +>this>.name +>' '> >+>this>.address;> >}> }> // Class 2> // Helper class extending Comparator interface> class> Sortbyroll>implements> Comparator {> >// Used for sorting in ascending order of> >// roll number> >public> int> compare(Student a, Student b)> >{> >return> a.rollno - b.rollno;> >}> }> // Class 3> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >Student[] arr> >= {>new> Student(>111>,>'bbbb'>,>'london'>),> >new> Student(>131>,>'aaaa'>,>'nyc'>),> >new> Student(>121>,>'cccc'>,>'jaipur'>) };> >System.out.println(>'Unsorted'>);> >for> (>int> i =>0>; i System.out.println(arr[i]); // Sorting on basic as per class 1 created // (user-defined) Arrays.sort(arr, new Sortbyroll()); System.out.println(' Sorted by rollno'); for (int i = 0; i System.out.println(arr[i]); } }>

>

>

Izhod

Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>

Kompleksnost zgornje metode:

Časovna zapletenost: O(nlog(n)) kot kompleksnost arrays.sort()
Pomožni prostor: O(1)

Ne pozabite: Obstaja majhna razlika med Arrays.sort() in Zbirke.sort() . Arrays.sort() deluje za nize, ki so lahko tudi primitivnega podatkovnega tipa. Zbirke .sort() deluje za predmete, kot so zbirke ArrayList , LinkedList itd.

Uporaba metode obratnega vrstnega reda: Ta metoda bo matriko razvrstila padajoče. V razredu Java Collections je na voljo tudi obratni vrstni red() metoda za razvrščanje matrike v obratnem leksikografskem vrstnem redu. Zaradi statične metode ne razčleni nobenega parametra, zato ga lahko prikličemo neposredno z uporabo imena razreda. matrike bo razvrstil v naraščajočem vrstnem redu z metodo sort(), nato pa nam bo metoda obratnega vrstnega reda() dala naravni vrstni red in dobili bomo razvrščeno matriko v padajočem vrstnem redu.

Sintaksa:

Arrays.sort(a, Collections.reverseOrder());>

Primer 7:

Java




// This will sort the array in the descending order> /*package whatever //do not write package name here */> import> java.util.Arrays;> import> java.util.Collections;> public> class> GFG {> >public> static> void> main(String[] args)> >{> >Integer[] array> >= {>99>,>12>, ->8>,>12>,>34>,>110>,>0>,>121>,>66>, ->110> };> >Arrays.sort(array, Collections.reverseOrder());> >System.out.println(> >'Array in descending order: '> >+ Arrays.toString(array));> >}> }>

>

>

Izhod

Array in descending order: [121, 110, 99, 66, 34, 12, 12, 0, -8, -110]>

Kompleksnost zgornje metode:

Časovna zapletenost: O(nlog(n)) kot kompleksnost arrays.sort()
Pomožni prostor: O(1)