num_count = int(input())
nums = []
for _ in range(num_count):
nums.append(int(input()))
nums.sort()
for num in nums:
print(num)
n = int(input())
array = list()
for _ in range(n):
array.append(int(input()))
array.sort()
for i in array:
print(i)
시간복잡도: O(n^2)
선택 정렬 (selection sort)
첫번째 항목과 순차적으로 비교하여 가장 작거나 큰 항목을 찾아서 첫 번째 항목과 위치를 바꾼다
계속 반복한다
이런 식으로 리스트 끝에 도달할 때 까지 이 과정을 반복한다
즉, 첫번째로 작은걸 찾아서 첫번째랑 바꾸기
두번째로 작은걸 찾아서 두뻔째랑 바꾸기
나의 풀이
def selection_sort(nums):
for target_index in range(len(nums)):
target = nums[target_index]
min = target
min_index = target_index
for sub_index in range(target_index, len(nums)):
if nums[sub_index] < min:
min = nums[sub_index]
min_index = sub_index
nums[target_index] = min
nums[min_index] = target
return nums
num_count = int(input())
nums = []
for _ in range(num_count):
nums.append(int(input()))
for num in selection_sort(nums):
print(num)
n = int(input())
array = list()
for _ in range(n):
array.append(int(input()))
for i in range(n):
min_index = i
for j in range(i+1, n):
if array[min_index] > array[j]:
min_index = j
array[i], array[min_index] = array[min_index], array[i]
for i in array:
print(i)