본문 바로가기

Algorithm/Sort

(3)
단순 삽입 정렬 단순 삽입 정렬 선택한 요소를 더 앞쪽의 알맞은 위치에(오름차순이든, 내림차순이든) 삽입하는 작업을 반복하여 정렬한다 2번째 요소. index[1] 값부터 진행한다 요소들이 서로 뒤바뀌지 않아 안정적이다 교환 횟수는 n^2/2 이다 시간복잡도가 O(n^2)라서 효율성이 떨어진다 코드예시 for(int i=1; i0 && a[j-1] > tmp; j--) { //값을 교환함 a[j] = a[j-1]; } //j--에 따라서 한 칸 앞에 a[i]인 tmp 값을 삽입해줌 a[j] = tmp; } } 10 4 2 11 3 20 15 과정 1) tmp = a[1]인 4가 된다 2) 조건이 맞기에 a[1] = a[0]인 10이 된다 3) j를 1 감소시켜 j=0이 된다 4) a[0] 은 타겟값 4가 된다 결과 4 ..
정렬 - 단순 선택 정렬 단순 선택 정렬은 가장 작은 요소를 선택하고 그에 맞는 위치에 있는 값과 서로 교환하는 과정을 계속한다 ex) 최소값 탐색 : 1 1을 index[0]에 위치 시킨다 최소값 탐색(이미 탐색한 index[0]의 1은 제외) : 3 3을 index[1]에 위치 시킨다 코드예시 for(int i = 0; i
정렬(Sort)-버블정렬 버블정렬 붙어 있는 두 값을 검사하여 정렬한다 오름차순으로 정렬할 때는 왼쪽의 값이 오른쪽의 값보다 작아야하고, 이에 맞지 않다면 값을 서로 교환한다 내림차순으로 정렬할 때는 오른쪽의 값이 왼쪽의 값보다 작아야하고, 이에 맞지 않다면 값을 서로 교환한다 ex) 오름차순 정렬 6 4 3 7 1 9 8 1. 9와 8을 비교하고 왼쪽 값이 오른쪽 값보다 작아야하기에 8과 9를 교환한다 6 4 3 7 1 8 9 2. 8과 1을 비교하고 왼쪽 값이 오른쪽 값보다 작기 때문에 1과 8은 교환하지 않는다 6 4 3 7 1 8 9 3. 1과 7을 비교하고 왼쪽 값이 오른쪽 값보다 작아야하기에 7과 1를 교환한다 6 4 3 1 7 8 9 4. 1과 3을 비교하고 왼쪽 값이 오른쪽 값보다 작아야하기에 1과 3을 교환한다 ..