[내일배움캠프] TIL_221124

JungHoon Han·2022년 11월 24일
0

내일배움캠프

목록 보기
13/78

정렬

오늘은 버블정렬, 선택정렬, 삽입정렬을 공부했다.
버블정렬은 강의 해설을 듣지않고 풀었는데 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문보다 안좋은게 있다면 댓글남겨주세요

profile
Node.js 주니어 개발자

0개의 댓글