본문 바로가기

반응형

알고리즘/정렬 (Sort)

(2)
삽입 정렬 (Insertion Sort) #Insertion_Sort " 리스트에 있는 값들을 왼 쪽부터 탐색하면서 정렬되어야 할 위치로 옮겨주자! " #Sudo_code 리스트에 있는 값들 중 맨 왼 쪽에 있는 index 값과 index+1을 한 바로 오른 쪽의 값을 비교해 준다. 만약 index의 값이 index+1의 값 보다 클 경우 해당 값을 서로 swap 해주고, 비교해 줄 index를 줄여준다. 2번 과정을 진행(index가 줄어드는 것)을 통해 index의 왼쪽에 정렬 되었던 값들과 비교를 또 진행해서 왼쪽의 정렬을 완성 해준다. 리스트 길이의 -1만큼 위 과정을 진행한다. 그 이유는 해당 과정이 진행 될 때 비교할 index를 기준으로 왼쪽에는 정렬된 리스트이기 때문에 이미 비교를 진행했기 때문이다.(설명 부족 ㅠ 느낌만 이해) ..
선택 정렬 (Selection Sort) #Selection_Sort " 리스트의 값들 중 가장 작은 값들을 선택해 순서대로 맨 앞으로 보낸다. " #Sudo_code 리스트의 길이 만큼 진행한다. 최소값 min 값을 처음에 무엇과 비교해도 가장 큰 값을 넣는다. 배열을 처음부터 탐색을 진행하면서, 해당 index에 들어 있는 값과 min 값을 비교해 계속해서 min을 최신화시켜준다. 한 번의 루프를 돌아 만들어진 index의 값은 최소 값 min이 들어간 값이기 때문에 리스트의 맨 앞의 값과 swap 해준다. 1 ~ 4번의 과정을 리스트의 길이 만큼 반복하면서 오름차순으로 정렬한다. #Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include int main(){ int..

반응형