본문 바로가기
(학) (공) (파)

01.26(13일차)

by 만석이 2024. 1. 26.


----------------------------------선형탐색-------------------------------

def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i  # 찾은 경우 해당 인덱스 반환
    return -1  # 찾지 못한 경우 -1 반환

# 예제 사용
my_list = [4, 2, 7, 1, 9, 5]
target_value = 7

result = linear_search(my_list, target_value)

if result != -1:
    print(f"{target_value}를 찾았습니다. 인덱스: {result}")
else:
    print(f"{target_value}를 찾지 못했습니다.")


----------------------------------이진탐색----------------------------------

def binary_search(arr, target):
    low, high = 0, len(arr) - 1

    while low <= high:
        mid = (low + high) // 2
        mid_value = arr[mid]

        if mid_value == target:
            return mid  # 찾은 경우 해당 인덱스 반환
        elif mid_value < target:
            low = mid + 1
        else:
            high = mid - 1

    return -1  # 찾지 못한 경우 -1 반환

# 예제 사용
my_list = [1, 2, 4, 5, 7, 9]
target_value = 5

result = binary_search(my_list, target_value)

if result != -1:
    print(f"{target_value}를 찾았습니다. 인덱스: {result}")
else:
    print(f"{target_value}를 찾지 못했습니다.")





----------------------------------버블 정렬----------------------------------

def bubble(arr):
    n = len(arr)

//1부터 7까지 i에 
    for i in range(n):

//1부터 6까지 j에
        for j in range(1, n-i):  # 범위를 1부터 n-i로 수정

만약에 j[0]이 j[1]보다 크다면
            if arr[j-1] > arr[j]:  # 비교 조건 수정

서로 순서를 바꿔준다.
                arr[j-1], arr[j] = arr[j], arr[j-1]

# 리스트 정의
my_list = [3, 7, 1, 5, 2, 6, 4]

# 정렬 함수 호출
bubble(my_list)

# 정렬된 리스트 출력
print(my_list)


----------------------------------선택 정렬--------------------------------------



def selection_sort(arr):
    n = len(arr)

//0부터 4를 i에 대입
    for i in range(n-1):
        min_index = i

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

        arr[i], arr[min_index] = arr[min_index], arr[i]

# 예제 사용
my_list = [64, 25, 12, 22, 11]

# 선택 정렬 수행
selection_sort(my_list)

# 정렬된 리스트 출력
print("정렬된 리스트:", my_list)








----------------------------------삽입 정렬----------------------------------


def insertion_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i - 1

        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1

        arr[j + 1] = key

# 예제 사용
my_list = [12, 11, 13, 5, 6]

# 삽입 정렬 수행
insertion_sort(my_list)

# 정렬된 리스트 출력
print("정렬된 리스트:", my_list)


'(학) (공) (파)' 카테고리의 다른 글

01.29(14일차) -2  (0) 2024.01.30
01.29(14일차)  (0) 2024.01.30
01.25(12일차)  (0) 2024.01.25
01.24(11일차)  (0) 2024.01.24
01.23(10일차)  (0) 2024.01.23