본문 바로가기

pseudo code2

알고리즘 7장 - 정렬 문제 : 퀵 정렬 - 알고리즘 7장- 정렬 문제 : 퀵 정렬 - 퀵 정렬은 크기가 커서 풀기 어려운 하나의 문제를 크기가 작아서 풀기 쉬운 여러 개의 문제로 바꾸어서 푸는 방법을 사용한다. 이런 방법을 divide-and-conquer paradigm라고 한다. 이를 수행하기 위해 Partitioning을 사용하여 정렬을 한다. Pivot element를 사용하여 Pivot element 왼쪽에는 Pivot 보다 작은 수들을 오른쪽에는 Pivot 보다 큰 값을 가지도록 정렬을 한다. Pivot을 계속 설정하여 위의 과정을 반복하여 수행하면 배열이 오름차순으로 정렬이 되게 된다. 퀵 정렬의 경우 Pivot을 어떻게 잡아서 Partitioning을 수행하는지가 매우 중요한 요건이라고 할 수 있다. 예를 들어 생각을 해보자. 라는.. 2017. 6. 7.
알고리즘 4장 - 합병 정렬 - 알고리즘 4장- 정렬 문제 : 합병 정렬 - 정렬 문제는 n개의 숫자들의 배열을 입력으로 받게 되면 입력된 숫자의 배열이 특정 조건을 만족하도록 다시 나열한 결과를 출력으로 나타내는 문제이다. 이번 장에서는 정렬 문제 중에서 합병 정렬에 대해서 학습할 것이다. 합병 정렬은 합병을 이용한 정렬 알고리즘이다. 합병은 두 개의 내용을 합치는 것을 의미한다. 두 개의 정렬된 배열이 주어졌을 때, 정렬된 하나의 배열로 합병을 하는 방법이다. 예를 들어서 과 라는 두 개의 배열이 있다고 가정하자. 각각의 배열들은 오름차순으로 배열이 정렬되어 있다. 이 두 배열을 사용하여 하나의 배열인 으로 정렬을 하는 방법이 합병 정렬이 된다. 여기서 중요한 점은 두 개의 배열이 우선적으로 정렬이 되어 있기 때문에 가장 작은 수가.. 2017. 6. 6.