자료구조3 정렬 알고리즘 1. 버블 정렬(Bubble Sort) def sort_bubble(L:list)->list: last = len(L) - 1 for count in range(last): for i in range(last-count): if L[i] > L[i + 1]: L[i], L[i + 1] = L[i + 1], L[i] return L 2. 삽입 정렬(Insertion Sort) def insert_sort(L): for i in range(1, len(L)): for j in range(i, 0, -1): if L[j] < L[j - 1]: L[j - 1], L[j] = L[j], L[j - 1] else: break return L 3. 병합 정렬(Merge Sort) 퀵 정렬 셸 정렬 힙 정렬 2023. 12. 6. 탐색 알고리즘 1. 선형 탐색 def linear_search(L,value): for i in L: if i == value: return True return False 2. 이진탐색 ※ 전제조건 : 정렬된 이더레이터에 적용 def binary_searh(L: list, n: str) -> int: """ from bisect import bisect_left 구현 Args: L (list): 검색 대상 n (str): 검색 내용 Returns: int: index 반환 """ first = 0 last = len(L) - 1 while last >= first: mid = (first + last) // 2 if L[mid] == n: return mid else: if n < L[mid]: last = mid .. 2023. 12. 6. 재귀함수 def print_r(n): if n == 0: return print(n) print_r(n-1) print_r(10) def factorial(n): if n == 1: return 1 return n*factorial(n-1) n = int(input("factorial 계산 : ")) print(factorial(n)) 2023. 12. 6. 이전 1 다음