[Algorithm] 병합 정렬 (Merge Sort) .05
Programming/Algorithm2021. 1. 7. 09:05[Algorithm] 병합 정렬 (Merge Sort) .05

이번에 알아볼 알고리즘은 병합 정렬 (Merge Sort) 입니다. 합병정렬이라고도 불리며, 분할정복알고리즘 중 하나입니다. 또한 안정정렬에 속합니다. 🤔 과정 및 코드 반씩 나누는 걸 반복하여 1개가 될 때까지 나눈 후 이를 다시 병합(Merge)하면서 정렬해나갑니다. 📝 Python 예시 코드. def merge(left, right): # 왼쪽 시작값 오른쪽 시작값, 병합하며 정리하기위한 빈 배열 i = 0 j = 0 sorted_list = [] while (i < len(left)) & (j < len(right)): # 무한반복하며 왼쪽배열과 오른쪽배열에서 가장왼쪽에 있는 값을 비교 # (각 배열의 왼쪽에 있는 값이 최소값) #크기를 비요하여 작은 정렬하는 배열에 담음. if left[i] <..

[Algorithm] 퀵 정렬 (Quick Sort) .04
Programming/Algorithm2020. 12. 29. 20:38[Algorithm] 퀵 정렬 (Quick Sort) .04

이번에 알아볼 알고리즘은 퀵 정렬 (Quick Sort) 입니다. 불안정 정렬이며, 다른 원소와 비교만으로 정렬하는 비교 정렬에 속합니다 분할정복알고리즘 중에 하나로, 평균적으로 매우 빠른 수행속도를 자랑합니다. 분할정복이란? 큰 문제를 작은 문제 단위로 쪼개면서 해결해나가는 방식 🤔 과정 및 코드 원소 안에서 원소 하나를 선택합니다. 선택한 원소를 피벗(Pivot)이라고 합니다. 피벗의 값을 기준으로 작은 원소는 왼쪽으로 큰 값은 오른쪽으로 정렬하고, 피벗 값은 사이로 들어가게 됩니다. 이후 왼쪽과 오른쪽 리스트에 각각 다시 퀵정렬을 반복하며 정렬하여 더 이상 리스트들이 분할되지 않을때 까지 반복합니다. 📝 Python 예시 코드. def QuickSort(arr): if len(arr)

[Algorithm] 삽입 정렬(Insertion Sort) .03
Programming/Algorithm2020. 12. 22. 19:48[Algorithm] 삽입 정렬(Insertion Sort) .03

이번에 알아볼 알고리즘은 삽입 정렬(Insertion Sort)입니다. 원카드를 할 때를 생각해보면, 손 패의 카드를 숫자 순으로 정렬해서 손에 쥐고 있던적 있죠? 이 상태에서 카드를 뽑게 되면 순서에 맞춰 패에 카드를 넣게 되는데, 이 방식이 삽입정렬이라고 생각하면 좋아요! 2번째 원소 부터 시작하며,선택한 원소의 앞에 있는 원소들과 비교하여 삽입할 위치를 정한 뒤 원소를 뒤로 옮기고 지정된 자리에 원소를 삽입하는 정렬 알고리즘입니다. 🤔 과정 및 코드 먼저 2번째 위치의 값을 temp에 저장하고 해당 원소보다 아래 위치에 있는 값들과 비교하며 알맞는 위치에 삽입합니다. 이후 그 다음(3번째) 위치의 값을 temp에 저장하고 아래 위치에 있는 값들과 비교하며 삽입을 반복합니다. 📝 Python 예시 코..

[Algorithm] 선택 정렬(Selection Sort) .02
Programming/Algorithm2020. 12. 22. 19:47[Algorithm] 선택 정렬(Selection Sort) .02

이번에 알아볼 알고리즘은 선택 정렬(Selection Sort) 입니다. 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘입니다. 쉽게 말해 모든 원소를 훑어 제일 작은(큰) 원소부터 차곡차곡 정렬하는 방식입니다. 🤔 과정 및 코드 해당 순서에 원소를 넣을 위치를 정해 놓고 조건에 맞는 원소를 선택하고 넣으며 정렬합니다. 📝 Python 예시 코드. def Selection_Sort(arr): for i in range(0, len(arr)): index = i for j in range(i+1, len(arr)): if arr[index] > arr[j]: index = j temp = arr[i] arr[i] = arr[index] arr[index] = tem..

[Algorithm] 거품 정렬(Bubble Sort) .01
Programming/Algorithm2020. 12. 21. 20:47[Algorithm] 거품 정렬(Bubble Sort) .01

알고리즘의 첫 장입니다. 먼저 알아볼 알고리즘은 거품 정렬(Bubble Sort)입니다. 이 알고리즘은 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘입니다. 이름의 유래는 정렬 과정에서 원소의 이동이 마치 거품이 수면 위로 올라 오는 듯한 모습을 보이기 때문이라고 합니다. 🤔 과정 및 코드 첫 회전에서 첫번째 원소와 두번째 원소 비교를, 두번째 원소와 세번째 원소 비교 이렇게 쭉 해나가서 결국 마지막엔 가장 큰 원소가 맨 뒤로 가게 되고, 해당 회전을 반복하면 큰 순으로 뒤에서 부터 정리 됩니다. 📝 Python 예시 코드. def Bubble_Sort(arr): for i in range(0, len(arr)): for j in range(1, len(a..

image