퀵정렬 3

퀵정렬 구현하기

문제 N개의 자연수가 주어질 때, 퀵정렬을 이용하여 이를 정렬하는 프로그램을 작성하시오. 입력 첫 번째 줄에 N이 주어진다. ( 1 ≤ N ≤ 100,000 ) 두 번째 줄에 N개의 자연수가 주어진다. 출력 퀵정렬을 이용하여 숫자를 오름차순으로 정렬한 결과를 출력한다. 예제 입력 10 5 9 2 8 3 7 4 6 1 10 예제 출력 1 2 3 4 5 6 7 8 9 10 예제 입력 5 2 3 1 2 1 예제 출력 1 1 2 2 3 #코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import sys def quick_sort(arr): if len(arr) = x] right = [x for x in tail if pivot

[PART2]CH.06_정렬

1. 기준에 따라 데이터를 정렬 정렬이란 데이터를 특정한 기준에 따라서 순서대로 나열하는것을 말한다. 정렬 알고리즘으로 데이터를 정렬하면 이진 탐색이 가능해진다. 즉 정렬 알고리즘은 이진 탐색의 전처리 과정이다. - 선택정렬 선택정렬은 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복하는 정렬. 즉, 매번 '가장 작은 것을 선택' 한다. #코드 1 2 3 4 5 6 7 8 9 10 arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(arr)): min_idx = i # 가장 작은 원소의 인덱스 for j in range(i+1,len(arr)): if arr[min_idx] ..

퀵 정렬(quick sort)

- 기준점(pivot)을 정해서 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right)으로 모으는 함수를 작성. - 각 왼쪽(left), 오른쪽(right)은 재귀용법을 사용해서 다시 동일 함수를 호출하여 위 작업을 반복. - 함수는 왼쪽(left) + 기준점(pivot) + 오른쪽(right) 을 리턴함. ================================= index : 0 1 2 3 4 5 6 7 value : 49 97 53 5 33 65 62 51 ================================= pivot선택 : (index : 0, value : 49) p1 (1회) pivot - (index : 0, value : 49) [left] - (index :..

반응형