목록2024/11/09 (3)
Hippo's data
오늘은 정렬 알고리즘 중에 기초인 버블정렬(Bubble sort)(=거품정렬) 알고리즘에 대해 알아보겠습니다! # 동작과정 두개의 수씩 차례대로 비교해나가는 식으로 정렬을 수행하는데욥! 두수씩 묶어 비교하는게 거품같지 않나요?!?! 아래는 거품정렬의 간단한 예시인데욥 4,3,5,1,2의 수를 오름차순으로 정렬하는 과정입니다총 4번의 순회를 통해 정렬이 수행되며, 최초 순회시에는 마지막 값이 최댓값이 됩니다 # Python 코드버블정렬은 코드 구현이 매우 쉽습니다! for i in range(len(arr) - 1): for j in range(len(arr) - i - 1): if arr[j] > arr[j + 1]: # 비교 후 교환 arr[j], arr[j +..
오늘은 비교정렬 알고리즘인 삽입 정렬 (Insertion Sort) 알고리즘에 대해 알아보겠습니다! # 동작과정 삽입정렬은 이름과 같이 매번 적절한 위치에 해당 값을 삽입하는 알고리즘입니다!간단한 예시로 트럼프 카드 게임을 생각하면 되는데욥! 1. 카드를 뽑고 2. 위치를 찾고 3. 삽입 하는 과정을 생각하면 됩니다!! 아래는 5,3,4,1,2 다섯개의 숫자를 정렬하는 예시인데욥동그라미 숫자는 동그라미 왼쪽의 정렬된 값에서 매번 삽입될 위치를 찾는 식으로 동작합니다! # Python 코드def insertion_sort(A): n = len(A) for i in range(1,n): key = A[i] # 삽입할 요소 j = i-1 # 삽입할 요소 보다 왼쪽에 위치..
이번에는 비교정렬 알고리즘인 선택 정렬 (Selection Sort) 알고리즘에 대해 알아보겠습니다! # 동작과정 선택정렬은 매우매우매우 간단합니다매번 비교마다 최솟값(오름차순 정렬) 혹은 최댓값(내림차순 정렬)을 제일 앞으로 보내주면 되는데요 간단한 만큼 직관적이지만 시간복잡도가 꽝입니다... # Python 코드오름차순으로 정렬하는 코드입니다!인덱스를 처음부터 순회하며 매번 최솟값 인덱스를 찾아 해당 위치의 값과 최솟값 인덱스의 값을 교환해줍니다 def selection_sort(A): n = len(A) for i in range(n): least = i # 현재 위치를 최솟값 위치로 가정 for j in range(i+1, n): if A..