버블정렬
버블정렬이란 인접한 두 원소를 비교하여 순서에 맞지 않을 경우 변경하는 정렬이다.
속도가 느린 알고리즘 이지만 코드가 비교적 간단하다.
버블정렬 시간복잡도: O(n2)
def bubble_func(li):
for i in range(len(li)-1,-1,-1):# 배열의 길이-1 부터 0 까지 반복
for j in range(0,i,1): # 0 부터 i-1 까지 반복
if li[j] > li[j+1]: # j번인덱스와 다음 인덱스 비교하여
temp = li[j] # 이전 인덱스가 더 큰경우
li[j] = li[j+1] # 이전인덱스와 다음 인덱스의 숫자 변경
li[j+1] = temp
print(li)
return li
bubble_list = bubble_func([1,5,3,8,2,6,7,100,10,12])
print("최종결과")
print(bubble_list)
정렬 과정 및 최종결과
[1, 3, 5, 8, 2, 6, 7, 100, 10, 12]
[1, 3, 5, 2, 8, 6, 7, 100, 10, 12]
[1, 3, 5, 2, 6, 8, 7, 100, 10, 12]
[1, 3, 5, 2, 6, 7, 8, 100, 10, 12]
[1, 3, 5, 2, 6, 7, 8, 10, 100, 12]
[1, 3, 5, 2, 6, 7, 8, 10, 12, 100]
[1, 3, 2, 5, 6, 7, 8, 10, 12, 100]
[1, 2, 3, 5, 6, 7, 8, 10, 12, 100]
최종결과
[1, 2, 3, 5, 6, 7, 8, 10, 12, 100]
'Python > 알고리즘 및 자료구조' 카테고리의 다른 글
스택(Stack) (0) | 2021.03.07 |
---|---|
퀵 정렬(quick sort) (0) | 2021.03.06 |
합병 정렬(merge sort) (0) | 2021.03.05 |
선택정렬 (0) | 2021.03.05 |
팩토리얼(factorial)과 재귀호출 (0) | 2021.03.04 |