선택정렬
왼쪽부터 가장 작은 노드와 비교하면서 교환
즉, 최소노드 선택 -> 왼쪽부터 비교 -> 교환
삽입정렬
아직 정렬되지 않은 특정 노드와 정렬된 노드들의 값을 비교하고 ,
값이 더 큰 것의 인덱스보다 작은 인덱스에 삽입하며 정렬하는 알고리즘
선택정렬과 비슷하지만, 값이 가장 작은 원소를 선택하지는 않는다.
삽입정렬은 소량의 데이터를 정렬하기위한 효율적인 알고리즘
버블정렬
서로 이웃한 두 원소의 크기를 비교한 결과에 따라 교환을 반복하는 알고리즘
(단순 교환 정렬이라고도 함)
버블정렬은 옆에 있는 이웃노드만 교환하므로 안정적
# 버블정렬 소스코드
def bubble_sort(li):
length = len(li) - 1
>> for i in range(length): # 외부 반복문(아래 그림에서 전체 리스트에 대해 정렬이 완료되었는지 검사하고 패스해줌)
>> for j in range(length-i): # 내부 반복문(아래 그림에서 하나의 리스트의 개별 값을 비교하고 교체시킨다)
>> if li[j] > li[j+1]:
>> li[j], li[j+1] = li[j+1], li[j]
li = [10, 2, 1, 7, 4, 3, 0]
bubble_sort(li)
print(li)
728x90
'AI월드 > ⚙️AI BOOTCAMP_Section 5' 카테고리의 다른 글
메모이제이션(Memoization) (0) | 2021.05.18 |
---|---|
분할정복(Divide and conquer),퀵정렬,병합정렬과 재귀(Recursion) (0) | 2021.05.18 |
탐색 알고리즘(선형검색, 이진검색) (0) | 2021.05.17 |
정렬알고리즘의 필요성과 버블소트(거품정렬)의 이해 (0) | 2021.05.17 |
이진트리 손코딩 (0) | 2021.05.14 |
댓글