Hamutaro - Hamtaro 4

Java

[JAVA] ๋ฐฐ์—ด ์ •๋ ฌ ๋ฉ”์„œ๋“œ Arrays.sort

carsumin 2024. 8. 29. 13:55

 

https://codegym.cc/ko/groups/posts/ko.1107.java---

 

Java์—์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

์ •๋ ฌ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ํ•„์š”ํ•œ ์ž‘์—… ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํŠน์ • ์ˆœ์„œ๋กœ ์ผ๋ถ€ ์š”์†Œ ์ง‘ํ•ฉ์˜ ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” Java์—์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ

codegym.cc

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋ฉด ๋ฐฐ์—ด์„ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

์ด๋Ÿด ๋•Œ Arrays.sort ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Arrays.sort

 

  • ์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์‚ฌ์šฉํ•˜๋ ค๋ฉด 'java.util.Arrays' ํด๋ž˜์Šค๋ฅผ import ํ•ด์•ผ ํ•จ

1. ๊ธฐ๋ณธํ˜• ๋ฐฐ์—ด ์ •๋ ฌ

  • ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž ๋“ฑ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
  • 'Dual-Pivot Quicksort' ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ๋จ
  • ์‹œ๊ฐ„๋ณต์žก๋„ : O(n log n)
int[] numbers = {3, 5, 1, 4, 2};
Arrays.sort(numbers);
// {1, 2, 3, 4, 5}๋กœ ์ •๋ ฌ๋จ

 

2. ๊ฐ์ฒด ๋ฐฐ์—ด ์ •๋ ฌ

  • ๊ธฐ๋ณธ ์ •๋ ฌ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ •๋ ฌ
String[] names = {"John", "Alice", "Bob"};
Arrays.sort(names);
// {"Alice", "Bob", "John"}๋กœ ์ •๋ ฌ๋จ

 

3. Comparator ์‚ฌ์šฉ

  • ์‚ฌ์šฉ์ž ์ •๋ ฌ ๋ฐฉ์‹
Arrays.sort(names, new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return s2.compareTo(s1); // ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
    }
});
// {"John", "Bob", "Alice"}๋กœ ์ •๋ ฌ๋จ

 

 

Arrays.sort ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ธฐ
  • ๊ธฐ๋ณธ์ ์œผ๋กœ Arrays.sort ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
  • ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด Collections.reverseOrder ๋ฉ”์„œ๋“œ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ์Œ
import java.util.Arrays;
import java.util.Collections;

public class Main {
    public static void main(String[] args) {
        String[] names = {"John", "Alice", "Bob"};
        Arrays.sort(names, Collections.reverseOrder());
        System.out.println(Arrays.toString(names)); // [John, Bob, Alice]
    }
}