알고리즘 이론19 선택 정렬(selection sort) 1. 주어진 데이터 중에서 최솟값을 찾는다 2. 맨 앞의 데이터와 찾은 최솟값의 위치를 바꾼다 3. 위 과정을 다음 나머지 값에서 반복한다 * 시간복잡도 : O(n^2) import random # set up def selection_sort(data): for x in range(len(data)-1): lowest = x for y in range(lowest+1, len(data)): if data[lowest] > data[y]: lowest = y data[lowest], data[x] = data[x], data[lowest] return data # given data = random.sample(range(30), 5) # when print(selection_sort(data)) # t.. 2020. 9. 28. 1부터 n까지 더하기 # 1부터 100까지 더하기 1 # O(n) sum = 0 for num in range(1,101): sum += num print(sum) # 5050 # 1부터 100까지 더하기 2 # O(1) n = 100 sum = n * (n+1) / 2 print(int(sum)) # 5050 2020. 9. 28. 버블 정렬(bubble sort) - given : 인접한 두 데이터를 비교하여, 앞 데이터가 뒤의 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘 def bubblesort(data): for index in range(len(data) - 1): isSwapped = False for index2 in range(len(data) - index - 1): if data[index2] > data[index2 + 1]: data[index2], data[index2 + 1] = data[index2 + 1], data[index2] isSwapped = True if isSwapped == False: break return data - when : 10개의 랜덤 수로 실행 import random data_list = random.sa.. 2020. 9. 13. 이전 1 2 3 4 5 다음