Trieda Arrays je trieda obsahujúca statické metódy, ktoré sa používajú s poľami na vyhľadávanie, triedenie, porovnávanie, vkladanie prvkov alebo vrátenie reťazcovej reprezentácie poľa. Najprv teda špecifikujme funkcie a neskôr budeme diskutovať o tom istom. Sú prítomné v nasledovnom java.util.Arrays trieda. Tu budeme diskutovať o rôznych grafoch pomocou metóda sort() triedy Arrays .
Metóda Arrays.sort() pozostáva z dvoch variácií, z ktorých jedna neodovzdáva žiadne argumenty, pričom triedi celé pole, či už je to celé pole alebo pole znakov, ale ak máme triediť konkrétnu časť pomocou tejto metódy triedy Arrays, potom preťažíme ho a poliu odovzdáme počiatočný a posledný index.
Syntax: sort() metóda
Arrays.sort();>
Syntax: Overloaded sort() Method
public static void sort(int[] arr, int from_Index, int to_Index) ;>
Parametre: Vyžaduje to tri parametre, ako je možné vnímať zo syntaxe, ktorá je nasledovná:
- Pole, ktoré sa má zoradiť
- Index prvého prvku vrátane, ktorý sa má zoradiť (označuje sa ako from_index)
- Index posledného prvku, exkluzívneho, ktorý sa má zoradiť (označovaný ako last_index)
Typ návratu: TO
Analýza zložitosti:
Časová zložitosť: O(N log N)
Pomocný priestor: O(1)katrina kaif
Teraz sa pozrime na implementáciu funkcie sort() v rôznych scenároch triedy Arrays takto:
Príklad 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 +>' '>);> >}> >}> }> |
>
>Výkon
The original array is: 5 -2 23 7 87 -42 509 The sorted array is: -42 -2 5 7 23 87 509>
Časová zložitosť: O(nlog(n)) ako zložitosť polí.sort()
Pomocný priestor: O(1)
Príklad 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));> >}> }> |
>
>Výkon
Modified arr[] : [6, 7, 9, 13, 21, 45, 101, 102]>
Zložitosť vyššie uvedenej metódy:
Časová zložitosť: O(N log N)
Pomocný priestor: O(1)
Príklad 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));> >}> }> |
>
>Výkon
Modified arr[] : [13, 6, 7, 21, 45, 9, 2, 100]>
Zložitosť vyššie uvedenej metódy:
Časová zložitosť: O(nlog(n)) ako zložitosť polí.sort()
Pomocný priestor: O(1)
Príklad 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));> >}> }> |
>
>Výkon
Modified arr[] : [100, 45, 21, 13, 9, 7, 6, 2]>
Zložitosť vyššie uvedenej metódy:
Časová zložitosť: O(nlog(n)) ako zložitosť polí.sort()
Pomocný priestor: O(1)
Príklad 5:
Java
vek rihanny
// 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));> >}> }> |
>
>Výkon
Modified arr[] : Modified arr[] :[www.techcodeview.com, practice.techcodeview.com, code.techcodeview.com]>
Zložitosť vyššie uvedenej metódy:
Časová zložitosť: O(nlog(n)) ako zložitosť polí.sort()
Pomocný priestor: O(1)
Teraz konečne naplno zavedieme metódu sort(), pretože tu budeme deklarovať naše vlastné definované kritériá pomocou Rozhranie komparátora .
Príklad 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]); } }> |
>
>Výkon
Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>
Zložitosť vyššie uvedenej metódy:
Časová zložitosť: O(nlog(n)), pretože zložitosť polí.sort()
Pomocný priestor: O(1)
Pamätajte: Je malý rozdiel medzi Arrays.sort() vs Collections.sort() . Arrays.sort() funguje pre polia, ktoré môžu byť tiež primitívneho dátového typu. zbierky .sort() funguje pre objekty ako kolekcie ArrayList , LinkedList , atď.
Použitie metódy opačného poradia: Táto metóda zoradí pole zostupne. V triede Java Collections tiež poskytuje obrátené poradie() metóda na zoradenie poľa v obrátenom lexikografickom poradí. Neanalyzuje žiadny parameter, pretože metóda je statická, takže ju môžeme vyvolať priamo pomocou názvu triedy. zoradí polia vo vzostupnom poradí metódou sort() a potom nám metóda reverse order() poskytne prirodzené zoradenie a dostaneme zoradené pole v zostupnom poradí.
Syntax:
Arrays.sort(a, Collections.reverseOrder());>
Príklad 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));> >}> }> |
>
>Výkon
Array in descending order: [121, 110, 99, 66, 34, 12, 12, 0, -8, -110]>
Zložitosť vyššie uvedenej metódy:
Časová zložitosť: O(nlog(n)) ako zložitosť polí.sort()
Pomocný priestor: O(1)