프로그래밍/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