삽입정렬
- Algorithm/Concept
- 2022. 3. 7.
반응형
728x90
반응형
삽입정렬
선택 정렬은 N번 만큼 가장 작은 수를 찾아서 맨 앞으로 보내야한다.
구현 예시
0) 0번째 인덱스가 아닌 1번째 인덱스부터 시작한다. 원소 5를 기준으로 자신의 위치 앞의 '7' 원소의 왼쪽/오른쪽 둘 중 선택하여 삽입된다.
- 원소 '5'는 원소 '7'보다 작으므로 '7'의 왼쪽에 삽입된다.
1) 2번째 원소인 '9'가 앞의 원소인 '7', '5'의 왼쪽/오른쪽 중 어디로 삽입될지 결정한다.
2) 3번째 원소인 '0'이 앞의 원소 '9', '7', '5' 의 왼쪽/오른쪽 중 어디로 삽입될지 결정한다.
3) 4번째 원소인 '3'이 앞의 원소 '9', '7', '5', '0' 의 왼쪽/오른쪽 중 어디로 삽입될지 결정한다.
4) 이러한 과정이 반복된다.
예제코드
import java.util.stream.IntStream;
public class M10_삽입정렬 {
public static void main(String[] args) {
int n = 10;
int[] arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};
for (int i = 0; i < n; i++) {
// 인덱스 i 부터 1까지 감소하며 반복하는 문법
for (int j = i; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
// swap
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
} else {
// 자기보다 작은 데이터를 만나면 그 위치에서 멈춤
break;
}
}
}
IntStream.range(0, n).mapToObj(i -> arr[i] + " ").forEach(System.out::println);
}
}
반응형
'Algorithm > Concept' 카테고리의 다른 글
계수 정렬 (0) | 2022.03.07 |
---|---|
퀵 정렬 (0) | 2022.03.07 |
선택 정렬 (0) | 2022.03.07 |
다이나믹 프로그래밍 (0) | 2022.03.07 |
이진 탐색 (Binary Search) (0) | 2022.03.07 |