본문 바로가기

프로그래밍 회고록/Python

2021.11.22 코테_선택 정렬 연습

728x90
반응형

# 오늘의 문제

선택 정렬 연습

 # 나의 코드

선택 정렬 연습

선택정렬 : 기준이 되는 데이터 값을 토대로 유한체의 값을 뽑아 비교해가며 가장 작은 값을 찾아 첫번째 에 넣고, 그 다음 값을 가져와 유한체의 값을 뽑아 비교해 두번째에 넣고 끝날때 까지 그 작업을 n번 지속해 정렬을 하는 방법

array = [ 7, 5, 9, 0, 3, 1, 6, 2, 4, 8 ]

for i in range(len(array)):
  min_index = i
  #range 파라미터 2개 들어가는 걸 모른다.
  for j in range( i+ 1 , len(array) ):
    if array[min_index] > array[j]:
      min_index = j
  array[i], array[min_index] = array[min_index], array[i] #swipe


print(array)

# 어레이가 하나 있다.
# 루프동안 어레이를 인덱스 순서대로 꺼낸다.
# 그중 하나를 최소 인덱스라고 저장해놓는다.
# 루프 내에서 다시 루프를 돌리는데 i+1 부터 len(array) 까지를 범위로 한다.
# 그렇게 하는 이유 : 상위루프값을 다시 꺼내는 오류를 만들지 않기 위해
# 만약 두번째 루프를 돌 동안 최소인덱스의 값이 루프내의 타겟 값인 j인덱스보다 크다면
# 최소인덱스를 j로 바꾼다.
# 두번째 루프에서 바뀌는 값은 항상 있을테니 루프를 돌고 i번째 인덱스값에
#최소 인덱스 값을 넣는다.
728x90