logo

Arrays.sort() w Javie z przykładami

Klasa tablic to klasa zawierająca metody statyczne używane z tablicami w celu wyszukiwania, sortowania, porównywania, wstawiania elementów lub zwracania ciągu znaków reprezentującego tablicę. Zatem najpierw określmy funkcje, a później omówimy to samo. Są one następujące: obecne w Java.util.Arrays klasa. Tutaj będziemy omawiać różne działki za pomocą sort() klasy Arrays .

Metoda Arrays.sort() składa się z dwóch odmian, w której nie przekazujemy żadnych argumentów, sortując całą tablicę, czy to tablicę liczb całkowitych, czy tablicę znaków, ale jeśli mamy posortować konkretną część za pomocą tej metody klasy Arrays, to przeciążamy go i przekazujemy początkowy i ostatni indeks do tablicy.



Składnia: metoda sort().

Arrays.sort();>

Składnia: Przeciążona metoda sort().

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

Parametry: Przyjmuje trzy parametry, jak można dostrzec na podstawie składni, która jest następująca:



  • Tablica do posortowania
  • Indeks pierwszego elementu, który ma zostać posortowany włącznie (określany jako from_index)
  • Indeks ostatniego elementu, wyłącznego, który ma zostać posortowany (określany jako last_index)

Typ zwrotu: TO

Analiza złożoności:

Złożoność czasowa: O(N log N)
Przestrzeń pomocnicza: O(1)



Przyjrzyjmy się teraz implementacji funkcji sort() w różnych scenariuszach klasy Arrays w następujący sposób:

Przykład 1:

Jawa




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

>

>

Wyjście

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

Złożoność czasowa: O(nlog(n)) ze względu na złożoność arrays.sort()
Przestrzeń pomocnicza: O(1)

Przykład 2:

Jawa




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

>

>

Wyjście

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

Złożoność powyższej metody:

Złożoność czasowa: O(N log N)
Przestrzeń pomocnicza: O(1)

Przykład 3:

Jawa




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

>

>

Wyjście

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

Złożoność powyższej metody:

Złożoność czasowa: O(nlog(n)) ze względu na złożoność arrays.sort()
Przestrzeń pomocnicza: O(1)

jak przekonwertować liczbę całkowitą na ciąg znaków w Javie

Przykład 4:

Jawa




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

modele uczenia maszynowego

>

>

Wyjście

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

Złożoność powyższej metody:

Złożoność czasowa: O(nlog(n)) ze względu na złożoność arrays.sort()
Przestrzeń pomocnicza: O(1)

Przykład 5:

Jawa




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

>

>

Wyjście

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

Złożoność powyższej metody:

Złożoność czasowa: O(nlog(n)) ze względu na złożoność arrays.sort()
Przestrzeń pomocnicza: O(1)

Na koniec w pełni zaimplementujemy metodę sort(), ponieważ tutaj będziemy deklarować własne zdefiniowane kryteria za pomocą metody Interfejs komparatora .

Przykład 6:

Jawa




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

>

>

Wyjście

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

Złożoność powyższej metody:

Złożoność czasowa: O(nlog(n)) ze względu na złożoność arrays.sort()
Przestrzeń pomocnicza: O(1)

Pamiętać: Istnieje niewielka różnica pomiędzy Arrays.sort() i Kolekcje.sort() . Funkcja Arrays.sort() działa w przypadku tablic, które mogą być również pierwotnymi typami danych. Kolekcje .sort() działa dla kolekcji obiektów takich jak Lista tablic , Połączona lista itp.

Stosując metodę odwrotnej kolejności: Ta metoda posortuje tablicę malejąco. W klasie Java Collections udostępnia również Odwrotna kolejność() metoda sortowania tablicy w odwrotnym porządku leksykograficznym. Nie analizuje żadnego parametru, ponieważ jest metodą statyczną, więc możemy wywołać ją bezpośrednio, używając nazwy klasy. posortuje tablice w kolejności rosnącej metodą sort(), po czym metoda odwrotnej kolejności() zapewni nam naturalną kolejność i otrzymamy posortowaną tablicę w kolejności malejącej.

Składnia:

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

Przykład 7:

Jawa




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

>

>

Wyjście

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

Złożoność powyższej metody:

Złożoność czasowa: O(nlog(n)) ze względu na złożoność arrays.sort()
Przestrzeń pomocnicza: O(1)