3. 버블 정렬
버블 정렬은 인접한 두 원소를 검사해 정렬하는 알고리즘이다. 선택 정렬은 앞자리를 제하고, 남은 것 중 최소값을 찾는 방식으로 추출 했었으나, 버블 정렬에서는 모든 값을 다회 비교하기 위해 한 자리에서 두 번 이상의 교체가 이루어지는 경우가 있다. 1. 주어진 리스트의 첫번째 값과 인접한 값을 비교한다. 2. 두 값의 크기 순서가 일치하지 않을 경우, 교환한다. 3. 각 자리별로 순서대로 반복하며, 모든 자리의 값 크기 순서가 맞을 때 까지 순회한다. 리스트가 [ 5,4,2,1,0,3 ] 일 경우, 큰 수부터 정렬하는 예시 1순회 pass table 자리교환 0 5,4,2,1,0,3 1 5,4,2,1,0,3 X 2 5,4,2,1,0,3 X 3 5,4,2,1,0,3 X 4 5,4,2,1,0,3 X 5 5,..
2. 선택 정렬
선택정렬은 정렬 알고리즘의 하나로 리스트 자료형에서 적은 비용을 부과하는 특징을 가지고 있다. 1. 주어진 리스트에서 최소값을 찾는다. 2. 리스트의 맨 첫번째를 n이라고 하고, 처음에는 n의 위치로 최소값을 이동한다. 3. 다시 최소값을 찾아 n+1 위치로 이동한다. 4. 정렬될 때까지 위 3번 항목을 반복한다. 리스트가 [ 5,4,2,1,0,3 ] 일 경우, pass table 최소값 0 [ 5,4,2,1,0,3 ] 0 1 [ 0,5,4,2,1,3 ] 1 2 [ 0,1,5,4,2,3 ] 2 3 [ 0,1,2,5,4,3 ] 3 4 [ 0,1,2,3,5,4 ] 4 5 [ 0,1,2,3,4,5 ] 5 『시간 복잡도』 O(n^2) 이며, 모든 수를 swap 할 경우이다. Ω(n^2) 이며, swap의 수가 ..