본문 바로가기

삽입정렬

(2)
Chap 6-4. 쉘 정렬(Shell Sort) 🌈Shell 정렬이란? 쉘은 ‘Donald L. Shell’이 제안한 방법으로 “쉘 정렬”이라고 한다. 다른 정렬 방법들은 정렬 방식이 이름이지만 이것은 만든 사람의 이름이라는 점에서 차이가 있다. 여러 가지 정렬 방법들을 배우는데 이름과 방법이 매치가 되지 않는다. 그래서 본인은 정렬 방식이 이름에 표면적으로 드러날 수 있도록 “Gap 삽입 정렬”이라고 자의적으로 생각해봤다.(일명 뇌피셜이라 할 수 있다.. ㅎ) ✔️방법 : 전체 리스트를 일정 간격(gap)의 부분 리스트로 나눈다. -> 나누어진 각각의 부분 리스트를 insertion sort 수행한다. (부분 리스트 별로 sort를 수행한다) 🌈motivation ✔️버블 정렬이나 삽입 정렬이 수행되는 과정은 ”기껏해야” 이웃하는 원소의 자리바꾸는 ..
Chap 6-3. 삽입 정렬(insertion sort) 삽입 정렬이란? 배열을 정렬된 부분(앞부분)과 정렬 안 된 부분 (뒷부분)으로 나누고, 정렬 안 된 부분의 가장 왼쪽 원소를 정렬된 부분의 적절한 위치에 삽입하여 정렬되도록 하는 과정을 반복 즉, 정렬 안 된 부분에서 하나씩 꺼내서 정렬된 부분에 있는 것들과 비교한다. 자신보다 작은 원소를 발견할 때까지 왼쪽 방향으로 이동한다. 자신보닥 작은 원소 바로 뒤에 삽입된다. → 정렬 안 된 부분의 원소가 정렬된 부분에 삽입되어 정렬된 부분의 그룹의 수가 1개 늘어나고, 정렬이 안 된 부분의 원소의 수는 1개 줄어든다. 결과= 이를 반복하여 수행하면, 마지막엔 정렬이 안 된 부분엔 아무 원소도 남지 않는다. + 모두가 정렬된 상태가 된다. 가정 = 정렬은 배열의 첫 번째 원소만이 정렬된 부분에 있는 상태에서 정..