[알고리즘] 삽입정렬 (insertion sort)
삽입정렬이란? 두번째 인덱스부터 시작한다 key값 앞에 있는 데이터(front)부터 비교해서 key < front 이면, front값을 뒤 인덱스로 복사 key보다 작은 데이터를 만날때까지 반복, 작은 데이터를 만나면 바로 뒤에 key값을 이동 예 : data_list = [9, 3, 2, 5] 1번째 실행 : key=9, [9,3,2,5] 2번째 실행 : key=3, front=9, 자리바꿈 [3,9,2,5] 3번째 실행 : key=2, front=9, 자리바꿈 / key=2, front=3, 자리바꿈 [2,3,9,5] 4번째 실행 : key=5, front=9, 자리바꿈 3보다 5가 크므로 끝 [2,3,5,9] 알고리즘 구현 def insertion_sort(data): for index in ran..
[알고리즘] 버블정렬 (bubble sort)
버블정렬이란? 두개의 인접한 데이터를 비교해서 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾼다 예 : data_list = [1, 9, 3, 2] 1차 로직 1, 9 비교 : 자리바꿈X [1,9,3,2] 9, 3 비교 : 자리바꿈O [1,3,9,2] 9, 2 비교 : 자리바꿈O [1,3,2,9] 2차 로직 1, 3 비교 : 자리바꿈X [1,3,2,9] 3, 2 비교 : 자리바꿈O [1,2,3,9] 3, 9 비교 : 자리바꿈X [1,2,3,9] 3차 로직 1, 2 비교 : 자리바꿈X [1,2,3,9] 2, 3 비교 : 자리바꿈X [1,2,3,9] 3, 9 비교 : 자리바꿈X [1,2,3,9] 알고리즘 구현 n개의 리스트가 있는 경우, 최대 n-1번의 로직 적용 로직이 경우에 따라 일찍 끝날수..