-
선택 정렬 파이썬으로 구현하기일반 프로그래밍/알고리즘 2022. 5. 15. 23:14
선택 정렬
어떠한 리스트가 주어졌을때, 인접한 두 수를 비교하여 작은 수를 앞 인덱스로 보내어 오름차순으로 정렬하거나, 큰 수를 보내어 내림차순으로 정렬하는 알고리즘이다. 그중 오름차순을 구현하는 코드를 작성하였다.
def selectionSort(nums): for i in range(len(nums) - 1): min_idx = i for j in range(i + 1, len(nums)): if nums[j] < nums[min_idx]: min_idx = j nums[i], nums[min_idx] = nums[min_idx], nums[i] return(nums)
nums라는 수가 담긴 리스트를 받는다. 0번째 인덱스부터 시작하여 n번째 인덱스와 n+1번째 인덱스를 비교하고 만약에 n번째 인덱스가 더 크면 그 둘의 자리를 바꾸어 오름차순으로 정렬하는 선택 정렬 코드다.
def selectionSort(nums): for i in range(len(nums) - 1): min_idx = i for j in range(i + 1, len(nums)): if nums[j] > nums[min_idx]: min_idx = j nums[i], nums[min_idx] = nums[min_idx], nums[i] return(nums)
반대로 위와 같이 코드를 작성하면 내림차순으로 구현이 가능하다.
'일반 프로그래밍 > 알고리즘' 카테고리의 다른 글
파이썬 알고리즘 - 오픈 채팅방 (0) 2022.05.19 파이썬 알고리즘 - 연속된 값의 가장 큰 합, 이진 탐색 (0) 2022.05.08 파이썬 알고리즘 - 주식 가격, 같은 알파벳 묶기 (0) 2022.05.08 파이썬 알고리즘 - 재귀, binary gap (0) 2022.05.08 파이썬 알고리즘 - 합이 가장 적은경로 찾기, 0 배열끝으로 이동시키기 (0) 2022.05.01