선택 정렬
: 매번 조건에 맞게 선택하는 알고리즘
ex) 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고,
그 다음 작은 데이터를 선택해 앞에서 두번째 데이터와 바꾸는 과정 등
array = [6,8,0,1,3,5,74,3,7,85,36]
for i in range(len(array)):
currrent_index = i
for j in range(i+1,len(array)):
if array[currrent_index] > array[j]:
currrent_index = j
if array[i] != array[currrent_index]:
array[i], array[currrent_index] = array[currrent_index], array[i],
print(array)
print('최종 배열 :', array)
[out]
[0, 8, 6, 1, 3, 5, 74, 3, 7, 85, 36]
[0, 1, 6, 8, 3, 5, 74, 3, 7, 85, 36]
[0, 1, 3, 8, 6, 5, 74, 3, 7, 85, 36]
[0, 1, 3, 3, 6, 5, 74, 8, 7, 85, 36]
[0, 1, 3, 3, 5, 6, 74, 8, 7, 85, 36]
[0, 1, 3, 3, 5, 6, 7, 8, 74, 85, 36]
[0, 1, 3, 3, 5, 6, 7, 8, 36, 85, 74]
[0, 1, 3, 3, 5, 6, 7, 8, 36, 74, 85]
최종 배열 : [0, 1, 3, 3, 5, 6, 7, 8, 36, 74, 85]
i : 가장 작은 데이터가 올 index
currrent_index : 가장 작은 데이터를 찾아가는 index
j : i+1번째부터 자료내의 끝까지 달려가는 index
Loop
이를통해 j가 1씩 증가하며 1자리씩 탐색합니다.
currrent_index의 값이 j번째 값보다 더 크다면
j번째 값이 더 작기때문에
currrent_index의 index를 j로 할당함을 반복하여
i번째 데이터 기준으로 자료의 끝까지 탐색하여 가장 작은 데이터 값을 i번째 데이터로 가져옵니다.
'Make the Learning Curve > Python' 카테고리의 다른 글
[Python] Pandas 튜토리얼 (Feat.DACON _ Ch 01 - 04) (0) | 2021.01.07 |
---|---|
[Python] heapq (힙큐)사용 (0) | 2021.01.04 |
[Python] Sort() , sorted() 정렬 함수 (0) | 2020.12.20 |
[Python] unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 오류 (0) | 2020.12.14 |
py (0) | 2020.10.29 |
댓글