카테고리
태그
Algorithm AWS Backend C,C++ cloud computing Computer Science concept Concept Data Structure Database EC2 Frameworks Game global top 100 Gradle Hash Infrastructure Inversion Of Control JAVA Java JPA JWT Network OCI OOP Operating System Programming Basics Programming Language Projects Retrospect Security Sort Spring Spring IOC SpringBoot Study Tomcat TroubleShooting Web basics Web Basics 글쓰기 사색
192 단어
1 분
[ Algorithm ] Insertion Sort(삽입 정렬)
Insertion Sort
- 버블 정렬, 선택 정렬보다 구현은 아주 조금 힘듦
- 목록을 차례대로 훑으면서 다음 과정을 반복
- 현재 위치의 요소를 뽑음
- 이걸 과거에 방문했던 요소들 중에 어디 사이에 넣어야 정렬이 유지되는지 판단
- 그 위치에 삽입
- 삽입으로 인해 다른 요소들을 오른쪽으로 밀어야(shift)할 수도 있음
- 평균 수행 시간: O(N^2)
- 최악 수행 시간: O(N^2)
- 메모리(공간 복잡도): O(1)
- 안정성: O
public class InsertionSort {
public static int[] insertionSort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int count = i;
while (count>0) {
if (arr[count-1] > arr[count]) {
int temp = arr[count];
arr[count] = arr[count - 1];
arr[count-1] = temp;
}
count --;
}
}
return arr;
}
}
[ Algorithm ] Insertion Sort(삽입 정렬)
https://blog-full-of-desire-v3.vercel.app/posts/algorithm/-algorithm--insertion-sort-/