정렬: 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 계수 정렬 별도의 리스트를 선언하고 그 안에 정렬에 대한 정보를 담는 정렬 알고리즘 다만, 계수 정렬은 데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을때만 사용 가능하다. (일반적으로 가장 큰 데이터와 가장 작은 데이터의 차이가 1,000,000을 넘지 않을 때 효과적으로 사용가능) array = [2, 6, 7, 4, 9, 5] count = [0] * (max(array) + 1) for i in range(len(array)): count[array[i]] += 1 # 각 데이터에 해당하는 인덱스의 값 증가 for i in range(len..
이것이 취업을 위한 코딩테스트다 with 파이썬
정렬: 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 퀵 정렬 기준 데이터(피벗)를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 알고리즘 array = [2, 6, 7, 4, 9, 5] def quick_sort(array, start, end): if start >= end: # 원소가 하나인 경우 return pivot = start # 피벗은 첫 번째 원소 left = start + 1 right = end while left right: # 엇갈렸다면 작은 데이터와 피벗을 교체 array[right], array[pivot] = array[pivot], array[right] else..
정렬: 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 삽입 정렬 데이터를 하나씩 확인하며, 각 데이터를 적절한 위치에 삽입하는 알고리즘 array = [2, 6, 7, 4, 9, 5] for i in range(1, len(array)): for j in range(i, 0, -1): if array[j] < array[j-1]: # 한 칸씩 왼쪽으로 이동 array[j], array[j - 1] = array[j - 1], array[j] else: break print(array) 삽입 정렬의 복잡도: O(N^2) 현재 리스트가 거의 정렬되어 있는 상태라면 매우 빠르게 동작함. 최선의 경우 O(N)
정렬: 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 선택 정렬 무작위의 데이터 들 중 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복하는 정렬 알고리즘 array = [2, 6, 7, 4, 9, 5] for i in range(len(array)): min_index = i for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] # swap ..