제로베이스 알고리즘(9~12)

ningbbang·2023년 4월 2일
0

Zerobase DS13

목록 보기
18/48

1. 삽입정렬
정렬되어 있는 자료 배열과 비교해서 정렬 위치를 찾음

nums = [5, 10, 2, 1, 0]

for i1 in range(1, len(nums)):
    i2 = i1 - 1
    cNum = nums[i1]
    print(f'i2 = {i2}')
    print(f'nums[i2] = {nums[i2]}')
    print(f'cNum = {cNum}')

    while nums[i2] > cNum and i2 >= 0:
        nums[i2 + 1] = nums[i2]
        i2 -= 1
        print(f'nums[i2] = {nums[i2]}')
        print(f'nums[i2 + 1] = {nums[i2 + 1]}')

    nums[i2 + 1] = cNum
    print(nums)
print(nums)

2. 선택정렬
주어진 리스트 중 최소값을 찾아, 그 값을 맨 앞에 위치한 값과 교체하는 방식으로 정렬

nums = [4, 2, 5, 1, 3]
print(nums)

for i in range(len(nums)-1):
    minIdx = i

    for j in range(i+1, len(nums)):
        if nums[minIdx] > nums[j]:
            minIdx = j

    # tempNum = nums[i]
    # nums[i] = nums[minIdx]
    # nums[minIdx] = tempNum

    nums[i], nums[minIdx] = nums[minIdx], nums[i]
    print(nums)
print(nums)
profile
HR Anaylist!

0개의 댓글