카테고리 없음

[202500115] 파이썬 프로그래밍 - 자료구조와 알고리즘

kode-daks 2025. 1. 16. 09:40

수업 목표

- 리스트 데이터 SWAP 프로그램을 작성할 수 있다.

- 최대값 찾기 알고리즘을 이해할 수 있다.

- 선택 정렬 알고리즘을 이해할 수 있다.

- 딕셔너리를 매개변수로 활용할 수 있다.

 

 

 

1. 리스트 데이터 SWAP

얕은 복사

- 단순히 새 변수명에 할당하여 복사할 수 있음

- 같은 주소를 가리키므로,

    - 메모리 사용량이 적음

    - 리스트 내 요소가 변하면 두 변수 모두 변함

- 이를 활용해 swap 함수 작성 가능

    - 인자로 리스트 자체를 받아 swap하면 얕은 복사의 성질로 swap 가능

    - 인자로 리스트내 요소를 받으면 함수 소멸 시 주소도 함께 사라지므로 swap 불가능

 

2. id 함수와 리스트

- 메모리 주소 값을 반환해주는 함수

 

3. 최대값 찾기

def findmax(lst):
    maxv = lst[0]
    for n in lst[1:]:
        if maxv < n:
            maxv = n
    return maxv

ca = [10, 17, 13, 11]
print(findmax(ca))

 

4. 선택 정렬

- 주어진 리스트 요소 중 최소값을 찾아 첫 번째 위치의 요소와 서로 교환하는 과정을 모든 요소가 정렬될 때까지 반복하는 알고리즘

    - 첫 번째 수를 min 변수에 저장

    - 두 번째 수와 비교하여 두 번째 수가 더 작으면 min 변수에 저장

def select_sorting(lst):
    for i in range(len(lst)):
        min = lst[i]
        mininx = i
        for j in range(i+1, len(lst)):
            if min > lst[j]:
                min = lst[j]
                mininx = j
                
        temp = lst[i]
        lst[i] = lst[mininx]
        lst[mininx] = temp
    return lst
        
        
lst = [21, 10, 11, 25, 13]
print(select_sorting(lst))

 

5. 딕셔너리를 매개변수로 사용

-