logo

예제가 포함된 Java의 Arrays.sort()

배열 클래스 요소를 검색, 정렬, 비교, 삽입하거나 배열의 문자열 표현을 반환하기 위해 배열과 함께 사용되는 정적 메서드가 포함된 클래스입니다. 따라서 먼저 기능을 지정하고 나중에 동일한 내용을 논의하겠습니다. 그들은 다음과 같이 존재합니다 java.util.Arrays 수업. 여기서는 다양한 플롯을 사용하여 논의할 것입니다. Arrays 클래스의 sort() 메서드 .

Arrays.sort() 메소드는 두 가지 변형으로 구성됩니다. 하나는 인수를 전달하지 않고 전체 배열을 정수 배열 또는 문자 배열로 정렬하지만 Arrays 클래스의 이 메소드를 사용하여 특정 부분을 정렬해야 하는 경우 이를 오버로드하고 시작 인덱스와 마지막 인덱스를 배열에 전달합니다.

통사론: sort() 메서드



Arrays.sort();>

통사론: 오버로드된 sort() 메서드

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

매개변수: 다음과 같은 구문에서 알 수 있듯이 세 가지 매개변수를 사용합니다.

  • 정렬할 배열
  • 정렬할 첫 번째 요소의 인덱스(from_index라고 함)
  • 정렬할 마지막 요소(exclusive)의 인덱스(last_index라 함)

반환 유형: 저것

복잡성 분석:

시간 복잡도: O(N로그N)
보조 공간: 오(1)

이제 다음과 같이 Arrays 클래스의 다양한 시나리오에서 sort() 함수의 구현을 살펴보겠습니다.

예시 1:

자바




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

bash while 루프
>

>

산출

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

시간 복잡도: arrays.sort()의 복잡성으로 인해 O(nlog(n))
보조 공간 : 오(1)

예시 2:

자바




문자열을 int로 변환 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));> >}> }>

>

>

산출

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

위 방법의 복잡성:

시간 복잡도: O(N로그N)
보조 공간: 오(1)

예시 3:

자바




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

>

>

산출

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

위 방법의 복잡성:

시간 복잡도: arrays.sort()의 복잡성으로 인해 O(nlog(n))
보조 공간 : 오(1)

예시 4:

자바




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

>

>

산출

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

위 방법의 복잡성:

시간 복잡도: arrays.sort()의 복잡성으로 인해 O(nlog(n))
보조 공간 : 오(1)

예시 5:

자바


자바 추가 문자열



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

>

>

산출

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

위 방법의 복잡성:

시간 복잡도: arrays.sort()의 복잡성으로 인해 O(nlog(n))
보조 공간 : 오(1)

이제 마지막으로 sort() 메소드를 최대한 구현하겠습니다. 여기서는 비교기 인터페이스 .

예시 6:

자바




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

>

>

산출

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

위 방법의 복잡성:

시간 복잡도: arrays.sort()의 복잡성으로 인해 O(nlog(n))
보조 공간 : 오(1)

기억하다: Arrays.sort()와 Arrays.sort() 사이에는 약간의 차이가 있습니다. 컬렉션.정렬() . Arrays.sort()는 기본 데이터 유형일 수 있는 배열에도 작동합니다. 컬렉션 .sort()는 다음과 같은 객체 컬렉션에 대해 작동합니다. 배열목록 , 링크드리스트 , 등.

역순 방법 사용: 이 방법은 배열을 내림차순으로 정렬합니다. Java Collections 클래스에서는 다음도 제공합니다. 역순으로() 배열을 역사전순으로 정렬하는 방법입니다. 정적 메소드이기 때문에 어떤 매개변수도 구문 분석하지 않으므로 클래스 이름을 사용하여 직접 호출할 수 있습니다. sort() 메서드를 사용하여 배열을 오름차순으로 정렬한 후 reverse order() 메서드를 사용하여 자연스러운 순서를 제공하고 내림차순으로 정렬된 배열을 가져옵니다.

통사론:

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

예시 7:

자바


100개 중 10개는 무엇인가요?



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

>

>

산출

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

위 방법의 복잡성:

시간 복잡도: arrays.sort()의 복잡성으로 인해 O(nlog(n))
보조 공간 : 오(1)