일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 월간 코드 챌린지 시즌1
- 프로그래머스
- 정렬 알고리즘
- 백준알고리즘
- MYSQL
- Android
- 폐CT
- 경력 개발자
- 방사성동위원소치료
- 입원준비
- 이직 준비
- 동위원소치료
- 갑상선암
- leetcode
- 방사성 동위원소 치료
- firebase
- 저요오드식
- 수술
- 안드로이드
- java
- 카페
- 용인세브란스병원
- 객체
- 알고리즘
- 갑상선암용인세브란스
- 전이
- 맛집
- 입원
- 임파선전이
- 림프절전이
- Today
- Total
목록정렬 알고리즘 (4)
새우버거의 개발 블로그
퀵 정렬 (Quick Sort) 1. Pivot 값을 기준으로 왼쪽에서부터 검사해서 큰 값을, 오른쪽에서부터 작은 값을 발견한다. 2. 두 값을 바꾸기 연산하고, 같은 과정을 수행한다. 3. 큰 값의 index 와 작은 값의 index 가 교차하는 경우, 작은 값과 Pivot 값을 바꾸기 연산한다. → Pivot 값을 기준으로 왼쪽은 Pivot 값보다 작은 값들, 오른쪽은 큰 값들로 분할된다. 4. 분할된 영역에서 같은 과정을 수행한다. → 재귀 성격 3. 시간 복잡도 : O(𝑁𝑙𝑜𝑔𝑁) 4. 작은 값과 큰 값으로 분할을 할 수 없는 경우 = 이미 정렬되어 있는 경우 : O(𝑁²) import java.util.Arrays; public class QuickSort { int[] array = new ..
삽입 정렬 (Insertion Sort) 1. 앞의 원소들이 이미 정렬이 되어 있다고 가정한다. 2. 특정 원소에서 앞의 원소들을 살펴보며 적당한 위치를 찾는 것 3. 시간 복잡도 : O(𝑁²) 4. 선택 정렬, 버블정렬보다 효율적인 알고리즘 → 필요 시에 바꾸기 연산을 수행하기 때문. 특히 이미 정렬이 되어 있을 경우에는최고의 효율을 보여준다. import java.util.Arrays; public class InsertSort { int[] array = new int[]{10, 2, 5, 8, 12, 73}; public void sort() { int j, temp; for (int i = 0; i = 0 && a..
버블 정렬 (Bubble Sort) 1. 두 숫자를 비교해서 더 작은 숫자를 왼쪽에 두는 것 2. 반복이 끝났을 때, 최댓값이 맨 뒤에 있게 된다. 3. 시간 복잡도 : O(𝑁²) 4. 선택 정렬보다 비효율적인 알고리즘 → 선택 정렬은 비교하면서 최솟값을 저장하고, 한 번 반복이 끝나고 바꾸기 연산을 수행하지만 버블 정렬은 비교할 때마다 바꾸기 연산이 이뤄지기 때문이다. import java.util.Arrays; public class BubbleSort { int[] array = new int[]{10, 2, 5, 8, 12, 73}; public void sort() { int temp; for (int i = 0; i < array.length; i++) { for (int j = 0; j < ..
선택 정렬 (Selection Sort) 1. 가장 작은 숫자를 가장 앞에 두는 것 2. 반복이 끝났을 때, 최솟값이 맨 앞에 있게 된다. 3. 시간 복잡도 : O(𝑁²) import java.util.Arrays; public class SelectionSort { int[] array = new int[]{10, 2, 5, 8, 12, 73}; public void sort() { int min, temp, index = 0; for (int i = 0; i array[j]) { min = array[j]; index = j; } } temp = ..