본문 바로가기
AI월드/⚙️AI BOOTCAMP_Section 5

선택정렬, 삽입정렬, 버블정렬

by khalidpark 2021. 5. 17.

선택정렬

왼쪽부터 가장 작은 노드와 비교하면서 교환
즉, 최소노드 선택 -> 왼쪽부터 비교 -> 교환

 

삽입정렬

아직 정렬되지 않은 특정 노드와 정렬된 노드들의 값을 비교하고 ,

값이 더 큰 것의 인덱스보다 작은 인덱스에 삽입하며 정렬하는 알고리즘

선택정렬과 비슷하지만, 값이 가장 작은 원소를 선택하지는 않는다.

삽입정렬은 소량의 데이터를 정렬하기위한 효율적인 알고리즘

 

버블정렬

서로 이웃한 두 원소의 크기를 비교한 결과에 따라 교환을 반복하는 알고리즘

(단순 교환 정렬이라고도 함)

버블정렬은 옆에 있는 이웃노드만 교환하므로 안정적

# 버블정렬 소스코드
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

댓글