프로그래밍/Java

배열 Parallel 정렬

개발정리 2022. 5. 6. 13:45

Arrays.parallelSort()

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

 

병렬 정렬 알고리듬

  • 배열을 둘로 계속 쪼갠다.
  • 합치면서 정렬한다.
  • sort()parallelSort() 비교
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);
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 took 548957
  • parallel sorting took 364074
  • 알고리듬 효율성은 같다. 시간 O(n logN) 공간 O(n)

 

참고

백기선 - 더 자바, Java8

'프로그래밍 > Java' 카테고리의 다른 글

함수형 인터페이스와 람다 표현식 소개  (0) 2022.06.07
Metaspace  (0) 2022.05.06
CompletableFuture (5)  (0) 2022.05.06
CompletableFuture (4)  (0) 2022.05.06
CompletableFuture (2) - Excutors  (0) 2022.05.06