최대값, 최소값은 인덱스의 위치를 이용해서 구하기
인덱스번호와 값을 함께 변경하기
최대값 구하기
max=data[0]
if max<data[i]:
max=data[i]
wheremax = i
정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식
[5,1,7,10,2] 에서
1회전시 가장 작은 수를 찾음 인덱스 [1]인 1이 가장 작은 숫자 - > 인덱스[0]과 교환 [5,1,7,10,2]->[1,5,7,10,2]
2회전시 가장 작은 수를 찾음 인덱스 [4]인 2가 가장 작은 숫자 -> 인덱스[1]과 교환 [1,5,7,10,2]->[1,2,7,10,5]
3회전시 가장 작은 수를 찾음 인덱스 [4]인 5가 가장 작은 숫자 -> 인덱스 [2]와 교환 [1,2,7,10,5] ->[1,2,5,10,7]
4회전시 가장 작은 수를 찾음 인덱스[4]인 7과 가장 작은 숫자->인덱스 [3]과 교환 [1,2,5,10,7]->[1,2,5,7,10]
best case: O(n2)
worst case: O(n2)
평균적인 시간 복잡도: O(n2)
data=[3,2,5,4,1]
for pivot in range(len(data)-1):
min = pivot #pivot은 방주인을 찾음
for where in range(pivot+1,len(data)): #min이 가장 작은 수
if data[where]<data[min]:
min=where
data[pivot],data[min]=data[min],data[pivot] #교환
print(data)
print(" ")
print(data)
[2, 3, 5, 4, 1]
[3, 2, 5, 4, 1]
[2, 3, 5, 4, 1]
[1, 3, 5, 4, 2]
[1, 3, 5, 4, 2]
[1, 3, 5, 4, 2]
[1, 2, 5, 4, 3]
[1, 2, 4, 5, 3]
[1, 2, 3, 5, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
'취준일기' 카테고리의 다른 글
[TIL_알고리즘] 정렬 알고리즘 Counting Sort (0) | 2020.11.13 |
---|---|
11/12 일지 (0) | 2020.11.12 |
정보처리기사 3회 실기 합격 (0) | 2020.11.12 |
11/11 일지 (0) | 2020.11.11 |
[TIL_알고리즘] 삽입 정렬 Insertion Sort (0) | 2020.11.11 |