자료구조_알고리즘/자료구조
-
[정렬] 삽입정렬 - 파이썬자료구조_알고리즘/자료구조 2020. 8. 19. 23:14
a = [5,9,3,4,8,10] def insertSort(unsorted_list): length = len(unsorted_list) for i in range(length): end = i while end > 0 and unsorted_list[end-1] > unsorted_list[end]: unsorted_list[end-1], unsorted_list[end] = unsorted_list[end], unsorted_list[end-1] end -=1 print(a) insertSort(a) print(a) 삽입 정렬은 한마디로 표현하면 정렬 범위를 1칸씩 확장해나가면서 새롭게 정렬 범위에 들어온 값을 기존 값들과 비교하여 알맞은 자리에 꼽아주는 알고리즘입니다. 그렇기 때문에 end값부터 ..
-
[정렬] 선택정렬 -파이썬자료구조_알고리즘/자료구조 2020. 8. 18. 12:49
''' 선택정렬 ''' a =[3,9,6,5,2,10] def selectedSort(unsorted_list): length = len(unsorted_list) for i in range(length): min_index = i for j in range(i+1 ,length): if(unsorted_list[j] < unsorted_list[min_index]): min_index = j unsorted_list[i], unsorted_list[min_index] = unsorted_list[min_index], unsorted_list[i] print(a) selectedSort(a) print(a) 오름차순 선택정렬은 최소값을 갖는 index를 찾는 방식으로 구현한다. 버블 정렬과 마찬가지로 구..
-
[정렬] 버블소트 - 파이썬자료구조_알고리즘/자료구조 2020. 8. 17. 22:49
버블 소트 - 파이썬 자료구조 관련 내용은 인터넷에서 검색하면 자료가 많이 나오기 때문에 따로 정리하진 않았다. a =[ 5, 3 , 6, 9, 2] list_length = len(a) for i in range(list_length -1): for j in range(list_length - i -1): if(a[j] >a[j+1]): a[j], a[j+1] = a[j+1], a[j] print(a) 버블 소트를 구현할 때 가장 중요한 것은 range의 범위를 설정하는 것이다. 실제 코딩테스트에서 버블소트 구현이 나올 확률은 없지만, 가장 기본이 되는 sorting 방법이기 때문에 주의해야 한다. 두번째 for문에서 list_length - i - 1 로 range 범위를 설정하는 이유는 뒤쪽 부터 ..