[정렬] lower bound, sorting in linear time, radix Sort, Sorting in Java
2023. 8. 12. 21:28ㆍ기타(이론)/인프런 - 알고리즘
정리
bubble, selection insertion quicksort = O(n^2)
merge, heap = O(nLogn)
오늘의 결론 스포 = O(nLogn)보다 시간복잡도가 더 낮아질 수 없다.
Comparison Sort
데이터들간의 상대적 크기관계만을 이용
Non-comparison Sort
정렬할 데이터에 대한 사전지식을 이용
ex) Bucket Sort, Radix Sort
Counting Sort
n개의 정수 정렬, 모든 정수는 0~k사이의 정수
(주어진 배열) A : [2,5,3,0,2,3,0,3]
(0~k까지 개수를 담는 배열) B : [2,0,2,3,0,1] //0이 2개, 1이 0개, 2가 2개...
(B에 따라 정렬, 크기는 A와 동일) C : [0,0,2,2,3,3,3,5]
int A[n]; int B[k] = { 0, }; //처음은 0으로 초기화 //C[0], C[1], ... C[k] for (int i = 0; i <= n; i++) B[A[i]]++; for (int c = 1, i = 0; i <= k; i++) { for (int j = 0; j < B[i]; j++) { A[c++] = i; } }
Radix Sort
n개의 d자리 정수들. 가장 낮은 자리수부터 정렬
Sorting in Java
String[] names = new String[] {"hyunSik","Dex","wonWoo","youngBin"}; Array.sort(names); //abc 사전순으로 sort됨 List<String> name = new ArrayList<String>(); fits.add("hyunSik"); fits.add("Dex"); fits.add("wonWoo"); fits.add("youngBin"); Collections.sort(name);
학습 페이지
www.inflearn.com
'기타(이론) > 인프런 - 알고리즘' 카테고리의 다른 글
[이진검색트리] (0) | 2023.08.12 |
---|---|
[정렬] SelectionSort, BubbleSort, InsertionSort, MergeSort, QuickSort, HeapSort (0) | 2023.07.29 |
[순환] N-Queens (1) | 2023.07.21 |
[순환] Counting Cells in a Blob (0) | 2023.07.21 |
[순환] Maze - 미로찾기 (0) | 2023.07.21 |