삽입정렬

Mkim4·2023년 1월 28일
1

find_ins_idx 함수로 a[0]이 어디에 들어가야할지 위치를 반환해준다.

1) a = [3,5,2,1,4]
result = [ ]
while a: -> 리스트 a가 빈 값(False)가 나올 때 까지
value = a.pop[0] = 3
ins_idx = find_ins_idx([ ], 3)
  		= for i in range(0,0) = for문 실행되지 않음
        = return len(r) (리스트가 비어있으므로)
        = 0
result.insert(0,3) #0자리에 3을 삽입
result = [3]
2) a = [5,2,1,4]
value = a.pop[0] = 5
ins_idx = find_ins_idx([3],5)
		= for i in range(0,1)
        = i가 0일때,
         	if 5 < r[0]: #5<3 해당안됨
        = return len(r)
        = 1
result.insert(1,5) #1자리에 5를 삽입
result = [3,5]
3) a = [2,1,4]
value = a.pop[0] = 2
ins_idx = find_ins_idx([3,5],2)
		= for i in range(0,2)
        = i가 0일때,
         	if 2 < r[0]: #2<3 해당됨
        = return 0
result.insert(0,2) #0자리에 2를 삽입
result = [2,3,5]
4) a = [1,4]
value = a.pop[0] = 1
ins_idx = find_ins_idx([2,3,5],1)
		= for i in range(0,3)
        = i가 0일때,
        = if 1 < r[0]: #1<2 해당됨
        = return 0
result.insert(0,1) #0자리에 1을 삽입
result = [1,2,3,5]
5) a = [4]
value = a.pop[0] = 4
ins_idx = find_ins_idx([1,2,3,5],4]
		= for i in range(0,4):
        = i가 0일때,
        = if 4 < r[0]: #4<1 해당안됨
        = i가 1일때,
		= if 4 < r[1]: #4<2 해당안됨
        = i가 2일때,
        = if 4 < r[2]: #4<3 해당안됨
        = i가 3일때,
        = if 4 < r[3]: #4<5 해당됨
        = 3
result.insert(3,4) #3자리에 4를 삽입
result = [1,2,3,4,5]
6) a = [ ] 
이므로 whileFalse이므로 실행안됨.
return result
이므로 결과는 result = [1,2,3,4,5]

일반적인 선택 정렬 알고리즘

profile
귀요미 개발자

0개의 댓글