sort 3

[삽잡이::알고리즘] 정렬(선택, 버블, 삽입, 병합) 간단 요약

정렬(선택, 버블, 삽입, 병합)들을 다시 한번 정리해봐야 하는 일이 생겼습니다. 그래서 예전에 정리해두었던 글들을 보고 있는데... 좀 어렵다.... 하.... 물론 코드로 되어있고,기존 방식들과 좀 다르게 구현된 것들도 있어서 그렇겠지만... 우선은 각 정렬들에 대한 정의 이해가 부족한 상태로다시 코드를 봐서 그런것이라는 결론을 내리게 되었습니다! 기사79에서 잘 나온 그림이 있어서 참고하여 올립니다.(문제시 삭제하도록 하겠습니다.) 우선, 선택 정렬에 대한 진행도 입니다. 다음으로 버블 정렬에 대한 진행도입니다. 그리고 삽입 정렬에 대한 진행도입니다. 마지막으로 병합 정렬에 대한 진행도 입니다.A, B 배열을 비교해가며 하나로 합칠 수 있지요. 이렇게 정렬되어지는 과정에 대한 도식화를 이해하게 된다..

#014_자료구조와 알고리즘_count sort & radix sort

안녕하세요 삽잡이 입니다. 오늘은 카운트 정렬(count sort)와 기수 정렬(radix sort)에 대해서 알아보고자 합니다. 우선, count sort는 도수들의 개수를 파악합니다.그 다음에 도수들을 배치할 수 있는 최대 범위를 구한 뒤 정렬을 진행 하는 것이지요. 우선 도수란 무엇일까요?예전 중/고등학교 시절 수학시간에 들어본 말 아닌가요? 도수 분포표에서 말입니다.도수란, 각 계급에 속하는 자료의 수라고 합니다.예를 들어보자면 말입니다... 이와 같은 배열이 있다고 가정해보겠습니다. 이때 도수의 개수는 어떻게 될까요?도수는 각 계급에 속하는 자료의 수라고 했습니다.여기서 각 계급이란 a,b,c 라는 문자들이라고 볼 수 있겠군요.그렇다면 도수의 개수는 아래와 같습니다. 자 그렇다면 count so..

#012_자료구조와 알고리즘_병합 정렬(Merge Sort)

안녕하세요 삽잡이입니다. 이번시간에는 병합 정렬에 대해서 알아보려고 합니다.병합정렬은 분할 정복 방식에 기반으로 한 정렬 알고리즘입니다.분할 정복? 많이 들어보시지 않았습니까? 맞습니다... 퀵정렬에 대해서 알아볼 때 언급된 내용입니다. 기억이 나시죠? 하하하... 분할 정복이 기억이 안나시는 분들을 위해 간략하게 설명을 드리자면,커다란 문제를 잘게 나눠서 작은 문제를 극복하는 것이죠...작은 문제를 해결함으로 나온 값들을 합쳐 결국 큰 문제를 해결하는 것이 분할 정복 방식의 핵심이라고 생각합니다. 병합 정렬은 분할 정복 방식을 기반으로 한다고 했습니다.다른 정렬들과 다르게 병합 정렬은 기존 데이터가 담겨있는 배열 이외에 추가적으로 또 다른 배일이 필요합니다. 이에 병합 정렬은 외부 정렬에 속하기도 합니..