티스토리 뷰
선택정렬
정렬되지 않은 배열이 주어졌을 때 오름차순으로 선택정렬해보자.
arr[] = 5 | 4 | 6 | 8 | 2 | 3 | 1 | 7 | 9 | 0
의 배열을 선택정렬을 사용해 오름차순으로 정렬하고자 한다.
값을 swap할 기준 인덱스를 맨 처음 값 arr[0]=5로 잡는다.
그리고 값을 비교할 비교 인덱스를 arr[1]=4로 잡는다.
4와 다음 6,8,2 .. 를 비교하면서 가장 작은 비교 인덱스 값을 기준 인덱스와 swap한다.
6,8은 4보다 크니 지나가고, 2와 비교했을 때 2가 더 작으므로 비교 인덱스는 arr[3]=2로 바뀐다.
이제 2와 3을 비교, 1을 비교했을 때 1이 더 작으므로 비교 인덱스는 arr[5]=1로 바뀐다.
비교 인덱스의 변화는 4-> 2-> 1->0 순으로 변하고 0을 마지막으로 기준 인덱스와 swap한다.
arr[] = 0 | 4 | 6 | 8 | 2 | 3 | 1 | 7 | 9 | 5
다시 기준 인덱스를 arr[1]=4로 잡고, 비교 인덱스를 arr[2]=6으로 설정.
비교 인덱스의 변화는 6->2->1 이고, 5까지 비교한 후 1과 4를 swap한다.
arr[] = 0 | 1 | 6 | 8 | 2 | 3 | 4 | 7 | 9 | 5
다시 기준 인덱스는 arr[2]=6, 비교 인덱스는 arr[3]=8.
비교 인덱스의 변화는 8->2. 5까지 비교한 후 6과 2를 swap한다.
arr[] = 0 | 1 | 2 | 8 | 6 | 3 | 4 | 7 | 9 | 5
다시 기준 인덱스는 arr[3]=8, 비교 인덱스는 arr[4]=6.
비교 인덱스의 변화는 6->3. 5까지 비교한 후 8과 3을 swap.
arr[] = 0 | 1 | 2 | 3 | 6 | 8 | 4 | 7 | 9 | 5
기준 인덱스 arr[4]=6, 비교 인덱스 arr[5]=8
비교 인덱스 변화 8->4, 5까지 비교한 후 6과 4 swap.
arr[] = 0 | 1 | 2 | 3 | 4 | 8 | 6 | 7 | 9 | 5
기준 인덱스 arr[5]=8,비교 인덱스 arr[6]=6
비교 인덱스 변화 6->5, 8과 5 swap.
arr[] = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 8
기준 인덱스 arr[6]=6. 비교 인덱스의 변화 없으므로 skip
기준 인덱스 arr[7]=7. 비교 인덱스 변화 없으므로 skip
기준 인덱스 arr[8]=9. 비교 인덱스 8과 비교했을 때 더 크므로 swap.
arr[] = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
arr = [5, 4, 6, 8, 2, 3, 1, 7, 9, 0]
def sel_sort(arr):
n = len(arr)
for i in range(n):
st_idx = i
for j in range(i+1,n):
if arr[j] < arr[st_idx]:
st_idx = j
arr[i],arr[st_idx] = arr[st_idx],arr[i]
print(arr[:i+1])
print("before: ",arr)
sel_sort(arr)
print("after: ",arr)
'알고리즘' 카테고리의 다른 글
코테 / 자동차 테스트(python) (0) | 2023.09.04 |
---|---|
합병 정렬 알고리즘 (0) | 2021.10.18 |
퀵 정렬 알고리즘 (0) | 2021.10.18 |
삽입 정렬 알고리즘 (0) | 2021.10.18 |
파이썬 괄호짝 찾기 문제 (0) | 2021.09.20 |
- Total
- Today
- Yesterday
- AVB
- one-to-many
- 회귀
- many-to-one
- problem statement
- automotive
- PCA
- many-to-many
- porks
- SOME/IP
- 논문 잘 쓰는법
- Python
- 차량 네트워크
- json2html
- AE
- 딥러닝
- 차량용 이더넷
- AVTP
- 단순선형회귀
- cuckoo
- automotive ethernet
- 이상탐지
- CAN-FD
- 크로스 엔트로피
- SVM
- 머신러닝
- HTML
- 로지스틱회귀
- Ethernet
- 케라스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |