선택 정렬 알고리즘

min 함수 활용

1
2
3
4
5
6
7
8
9
10
11
12
def func(arr):
    temp = []
    for i in range(0, len(arr)):
        temp.append(min(arr))
        arr.remove(min(arr))

    return temp


def main():
    arr = [35, 9, 2, 85, 17]
    print(func(arr))

배열 하나로 바꾸기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def func(arr):
    for i in range(0, len(arr)):
        min_idx = 0

        for j in range(i + 1, len(arr)):
            if arr[j] < arr[i]:
                min_idx = j
                arr[i], arr[min_idx] = arr[min_idx], arr[i]

    return arr


def main():
    arr = [35, 9, 2, 85, 17]

    arr = func(arr)
    print(arr)


if __name__ == "__main__":
    main()

알고리즘 분석

리스트 안의 자료를 한 번씩 비교해야하므로 O($n^2$) ($\frac{n(n-1)}{2}$ 이므로)

댓글남기기