java 8 정리10

Java 정리 2021. 6. 30. 20:27

인프런 강의 12일차.

 - 더 자바, Java 8 (백기선 강사님)

 

1. 배열 Parallel 정렬

 - Arrays.parallelSort()

   > Fork/Join 프레임워크를 사용해서 배열을 병렬로 정렬하는 기능을 제공한다.

 

2. 배열 정렬 알고리즘

 - 배열을 계속 둘로 쪼갠다.

 - 합치면서 정렬한다.

 

3. Sort()와 Parallel() 비교

package me.whiteship.java8to11;

import java.util.Arrays;
import java.util.Random;
import java.util.stream.IntStream;

public class App {

    public static <List> void main(String[] args) {
        int size = 1500;
        int[] numbers = new int[size];
        Random random = new Random();

        IntStream.range(0, size).forEach(i -> numbers[i] = random.nextInt());
        long start = System.nanoTime();
        Arrays.sort(numbers);           //sort는 쓰레드를 1개만 쓴다.(java는 퀵소트를 사용함)
        System.out.println("serial sorting took " + (System.nanoTime() - start));

        IntStream.range(0, size).forEach(i -> numbers[i] = random.nextInt());
        start = System.nanoTime();
        Arrays.parallelSort(numbers);   //반으로 쪼개고 소팅하고 합치는 과정 반복
        System.out.println("parallel sorting took " + (System.nanoTime() - start));
    }
}

 - serial sorting : 548957

 - parallel sorting : 364074

 - 알고리즘 시간복잡도는 같다 : O(n logN) 공간 O(n)

 

 

'Java 정리' 카테고리의 다른 글

Singleton 패턴, JAVA에서의 응용과 이해  (4) 2024.01.29
java 8 정리11  (0) 2021.07.01
java 8 정리9  (0) 2021.06.17
java 8 정리8  (0) 2021.06.02
java 8 정리7  (0) 2021.05.26