오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Algorithm/기본 알고리즘 구현

정렬 알고리즘 구현

junha6316 2021. 7. 22. 15:54

1. 버블 알고리즘

def buble_sort(arr):
    N = len(arr)
    for i in range(N):
        for j in range(i+1, N):
            if arr[i] > arr[j]:
                 arr[i], arr[j] = arr[j], arr[i]
    return arr

 

2. 병합 정렬 알고리즘

def merge_sort(arr):
    N = len(arr)
    if N < 2:
        return arr
    mid = N // 2
	left, right = arr[:mid], arr[:mid]
    
    left_arr = merge_sort[:mid]
    right_arr = merger_sort[mid:]
    
    result = []
    l = r = 0
    while l < len(left_arr) and h < len(right_arr):
        if left_arr[l] < right_arr[h]:
	        #인덱스를 앞으로 보내면서 비교 
            result.append(left_arr[l])
            l += 1
        else:
            result.append(right_arr[h])
            h += 1
    # 나머지를
    result += low_arr[l:]
    result += high_arr[h:]
    return result

3. 퀵 정렬

def quick_sort(arr):

    if len(arr) <= 1:
        return arr
        
    pivot = arr[len(arr) // 2]
    lesser_arr, equal_arr, greater_arr = [], [], []
    
    for num in arr:
        if num < pivot:
            lesser_arr.append(num)
        elif num > pivot:
            greater_arr.append(num)
        else:
            equal_arr.append(num)
    return quick_sort(lesser_arr) + equal_arr + quick_sort(greater_arr)