본문 바로가기
반응형

Sort3

병합 정렬 ( Merge Sort ) 이란? 안녕하세요~ 오늘은 두 개의 포스팅을 연달아 합니다~ 앞서서 선택 정렬에 대해서 알아봤는데요, 너무 쉬웠죠? 쉬운만큼 속도가 느린 알고리즘 중에 하나였습니다. 이번에는 더 빠른 알고리즘에 대해서 알아볼 겁니다. 바로 병합 정렬인데요, 이름에서도 알 수 있듯이 병합하면서 정렬하는 알고리즘 입니다. 이 알고리즘은 divide and conquer, 즉, 분할 정복 알고리즘에 기반한 알고리즘입니다. 일단 최소 단위로 잘게 나눈 다음에 병합하면서 정렬을 하는 것이죠. 어느 정도 감이 오시나요? 그럼 이제 그림 예제를 통해서 한 번 자세하게 알아보도록 하죠. 이번에도 역시 아래와 같이 정렬되지 않은 데이터 셋에서 부터 출발해 볼게요. 이제 이 데이터 셋을 반으로 나눕니다. 그리고 그렇게 나뉜 데이터 셋을 또 각각.. 2016. 6. 28.
선택 정렬 ( Selection Sort )이란? 안녕하세요~~ 어제는 너무 피곤해서 포스팅을 못하고 일찍 잠이 들었어요.. 오늘은 어제 충분히 잠을 잤으니 포스팅을 또 이어 가려 합니다. 오늘은 선택 정렬에 대해서 포스팅을 할 건데요, 이 선택 정렬은 앞에서 포스팅 했던 버블 정렬이나 삽입 정렬처럼 쉽고 간단한 정렬 알고리즘입니다. 우선, 간단하게 선택 정렬 알고리즘의 수행 방법에 대해서 얘기하자면, 선택 정렬은 정렬되지 않은 데이터 셋을 처음부터 순차적으로 모든 데이터에 대해서 검사를 하면서 최소 데이터를 찾아냅니다. 그리고 그렇게 찾은 데이터와 첫 번째 인덱스에 있는 데이터를 서로 바꿔줍니다. 이렇게 함으로써 가장 좌측에는 가장 작은 수가 들어가겠죠. 두 번째 이터레이션에서 찾은 (전체 데이터 중에서) 두 번째로 작은 수는 두 번째 인덱스의 데이터.. 2016. 6. 28.
삽입 정렬(Insertion Sort)이 뭔가요? 버블 정렬과의 차이점 안녕하세요~ 화창한 주일 잘들 보내셨나요? 이제 조금 있으면 개콘이 할 시간이군요. 개콘이 할 시간이라는 건 내일이 월요일이라는 슬픈 사실을 내포하고 있죠 ㅜㅜ 그래도 우리는 꾸준히 배워야 합니다. 그래야 남들보다 더 나은 삶을 살 수 있을테니까요 ㅋㅋ 자, 이번엔 삽입 정렬에 대해서 포스팅을 하려 합니다. 삽입 정렬이란 이름을 보면 뭔가를 삽입하면서 정렬을 한다라고 추측을 해볼 수 있을 것 같아요. 그쵸? 네, 바로 그 개념을 이용한것이 삽입 정렬입니다. 삽입 정렬은 데이터 셋을 두개로 나누어 생각합니다. 하나는 정렬된 셋이고 하나는 정렬되지 않은 셋입니다. 정렬된 셋은 항상 좌측에 위치하게되고 우측에는 앞으로 정렬해야 할 (정렬되지 않은) 남은 데이터 셋이 있습니다. 어떤 요소가 정렬이 되려면 정렬된.. 2016. 6. 26.
728x90