정렬
오늘은 버블정렬, 선택정렬, 삽입정렬을 공부했다.
버블정렬은 강의 해설을 듣지않고 풀었는데 while문으로 해결했다.
자바스크립트에서는 while문을 거의 쓰지않았는데 파이썬은 for문이 뭔가 익숙하지않아 while문을 쓰게됐다.
코드작성 후 해설을보니 대부분 버블정렬은 이중for문으로 작성하는거같았다.
그래서 시간복잡도로 봤을때 뭐가 더 좋은건지 궁금해서 튜터님께 여쭤보니 버블정렬은 n제곱이라고한다. while을쓰든 이중for문을쓰든말이다.
내가쓴 while문은 아래와같다.
input = [4, 6, 2, 9, 1]
def bubble_sort(array):
arr_length = len(array)
i = 0
while True:
if arr_length == 0:
return array
elif i == arr_length - 1:
i = 0
arr_length -= 1
else:
print(array, i, arr_length)
if array[i] <= array[i + 1]:
i += 1
else:
a = array[i + 1]
array[i + 1] = array[i]
array[i] = a
i += 1
bubble_sort(input)
print(input) # [1, 2, 4, 6, 9] 가 되어야 합니다!
혹시 해당 코드가 이중for문보다 안좋은게 있다면 댓글남겨주세요