sort 2

[알고리즘] 퀵 정렬

퀵 정렬 정렬 알고리즘 중에서 가장 많이 사용되는 알고리즘이며 대부분의 프로그래밍 언어에서 정렬 라이브러리의 근간이 되는 알고리즘이다. 퀵 정렬은 '피벗'이라는 기준을 가지고 피벗보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방법을 사용한다. 동작 방법은 아래와 같다. 1. 리스트에서 첫 번째 데이터를 피벗으로 설정한다. 2. 리스트의 왼쪽에서부터 피벗보다 큰 데이터를 찾는다. 3. 리스트의 오른쪽에서부터 피벗보다 작은 데이터를 찾는다. 4. 작은 데이터와 큰 데이터가 서로 엇갈린 위치에서 발견되었다면 작은 데이터와 피벗의 위치를 바꾼다. 5. 엇갈리지 않았다면 작은 데이터와 큰 데이터의 위치를 바꾼다. 예시 숫자 10, 20, 6, 39, 40, 1, 16, 9가 순서대로 저장되어 있다. 리스트의 첫 ..

알고리즘 2022.11.04

[알고리즘]선택 정렬

선택 정렬(Selection Sort) 리스트에서 아직 정렬 안된 부분의 원소들 중에서 최솟값을 '선택'하여 정렬 안된 부분의 가장 왼쪽의 원소와 교환하는 정렬 알고리즘. 동작 방법 숫자 20, 4, 2, 1, 50, 31, 13, 7 이 준비되어 있다. 정렬된 데이터는 색으로 표시한다. 1) 정렬되지 않은 원소 중 가장 작은 '1'을 선택해 정렬 안된 부분의 가장 왼쪽에 있는 '20'과 교환해준다. 교환된 '1'이 가장 왼쪽에 위치하고 '20'은 '1'의 자리에 들어있다. 2) 정렬되지 않은 원소 중 가장 작은 '2'를 선택해 정렬 안된 부분의 가장 왼쪽에 있는 '4'와 교환해준다. 교환된 '2'가 '1' 다음에 정렬되고 '4'는 '2'의 자리에 들어있다. 3) '4'는 정렬되지 않은 수 중에서 가장 ..

알고리즘 2022.09.14