반응형
Selection Sort Example
배열 A[0...6]에 들어 있는 7개의 정수를 오름차순으로 정렬하기.
Overview of Algorithm for n integers in A[0...n-1]
* 배열을 2개의 리스트로 나눈다.
- A[0], ... , A[i-1] : 정렬된 리스트 // 처음에는 비어있다.
- A[i], ... , A[n-1] : 정렬되지 않은 리스트 // 처음에 i = 0이다.
* 정렬되지 않은 리스트 A[i], ... , A[n-1]에서 최솟값을 찾아낸다.
- 먼저, A[i]을 최솟값이라 가정한다.
- A[i+1], ... , A[n-1]에서 A[i]보다 작은 값이 있는지 찾아본다.
* A[i]와 최솟값의 자리를 바꾼다.
- A[0], ... , A[i] : 정렬된 리스트
- A[i+1], ... , A[n-1] : 정렬되지 않은 리스트
* 정렬이 끝날 때 까지 반복한다.
- i = n-2가 될때 까지. 마지막 하나는 굳이 정렬하지 않아도 됨.
Selection sort pseudo code
for i <- 0 to n-2 do{
min <- i
for j <- i+1 to n-1 do{ // unsorted list A[i+1]...A[n-1]
if(A[j]<A[min]) min <- j // A[j]가 A[min]보다 작다면 min을 j로 덮어씌우고 for문을 지속한다.
}
swap(A[i], A[min]) // 최종적인 최솟값 A[min]와 A[i]의 값을 바꿈
} // 이 과정을 반복하면 정렬이 됨.
출처
CAU DBLab
https://intellipaat.com/blog/tutorial/python-tutorial/data-structures-with-python-cheat-sheet/
반응형
'소프트웨어자료 > 자료구조 & 알고리즘' 카테고리의 다른 글
Linked list (연결 리스트) 란 무엇인가? (0) | 2020.05.21 |
---|---|
[자료구조] 순환 알고리즘 (이원 탐색, 순열 생성) (0) | 2020.04.13 |
[자료구조] Binary search (with Recursion(재귀) pseudo code) 예제. (0) | 2020.03.17 |
[Algorithm] 알고리즘이란? (pseudo code 설명) (0) | 2020.03.16 |
자료구조란 무엇인가? (개요) (0) | 2020.03.16 |