logo

Arrays.sort() în Java cu exemple

Clasa Arrays este o clasă care conține metode statice care sunt folosite cu matrice pentru a căuta, sorta, compara, insera elemente sau returnează o reprezentare șir a unui tablou. Deci, să specificăm mai întâi funcțiile și mai târziu vom discuta despre același lucru. Ele sunt după cum urmează fiind prezente în java.util.Arrays clasă. Aici vom discuta despre diferite parcele folosind metoda sort() a clasei Arrays .

Metoda Arrays.sort() constă din două variante, una în care nu transmitem niciun argument în care sortarea întregului tablou, fie că este o matrice întregă sau o matrice de caractere, dar dacă ar trebui să sortăm o anumită parte folosind această metodă a clasei Arrays, atunci îl supraîncărcăm și trecem matricei indexul de început și ultimul.



Sintaxă: sort() Metoda

Arrays.sort();>

Sintaxă: Metoda sort() supraîncărcată

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

Parametri: Este nevoie de trei parametri, după cum se poate percepe din sintaxă, care este după cum urmează:



  • Matricea de sortat
  • Indexul primului element, inclusiv, care urmează să fie sortat (denumit din_index)
  • Indexul ultimului element, exclusiv, de sortat (denumit last_index)

Tip returnare: ACEA

Analiza complexității:

Complexitatea timpului: O(N log N)
Spațiu auxiliar: O(1)



Acum să vedem implementarea funcției sort() în diferite scenarii ale clasei Arrays, după cum urmează:

Exemplul 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 +>' '>);> >}> >}> }>

>

>

Ieșire

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

Complexitatea timpului: O(nlog(n)) ca complexitate a matricelor.sort()
Spatiu auxiliar: O(1)

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

>

>

Ieșire

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

Complexitatea metodei de mai sus:

Complexitatea timpului: O(N log N)
Spațiu auxiliar: O(1)

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

>

în java
>

Ieșire

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

Complexitatea metodei de mai sus:

Complexitatea timpului: O(nlog(n)) ca complexitate a matricelor.sort()
Spatiu auxiliar: O(1)

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

>

>

Ieșire

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

Complexitatea metodei de mai sus:

Complexitatea timpului: O(nlog(n)) ca complexitate a matricelor.sort()
Spatiu auxiliar: O(1)

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

>

>

Ieșire

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

Complexitatea metodei de mai sus:

Complexitatea timpului: O(nlog(n)) ca complexitate a matricelor.sort()
Spatiu auxiliar: O(1)

Acum, în sfârșit, vom implementa metoda sort() la maximum, deoarece aici ne vom declara propriile criterii definite cu ajutorul Interfață de comparație .

Exemplul 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]); } }>

>

>

Ieșire

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

Complexitatea metodei de mai sus:

Complexitatea timpului: O(nlog(n)) ca complexitate a matricelor.sort()
Spatiu auxiliar: O(1)

Tine minte: Există o mică diferență între Arrays.sort() vs Collections.sort() . Arrays.sort() funcționează pentru tablouri care pot fi și de tipul de date primitiv. Colecții .sort() funcționează pentru obiecte, cum ar fi colecții ArrayList , LinkedList , etc.

Folosind metoda de ordine inversă: Această metodă va sorta matricea în descendent. În clasă Java Collections oferă, de asemenea, ordine inversă() metoda de sortare a matricei în ordine lexicografică inversă. Nu analizează niciun parametru din cauza metodei statice, așa că îl putem invoca direct folosind numele clasei. va sorta tablourile în ordine crescătoare după metoda sort() după care metoda ordine inversă () ne va oferi ordonarea naturală și vom obține tabloul sortat în ordine descrescătoare.

Sintaxă:

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

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

>

>

Ieșire

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

Complexitatea metodei de mai sus:

Complexitatea timpului: O(nlog(n)) ca complexitate a matricelor.sort()
Spatiu auxiliar: O(1)

arraylist și linkedlist