파이썬 k번째 작은수를 찾는 코드에서 몇번의 탐색과정이 있었는지 알고싶습니다
조회수 801회
def selection(data, LEFT,RIGHT, k):
pivot = partition(data,LEFT,RIGHT)
if k <pivot :
return selection(data, LEFT, pivot-1, k)
elif k == pivot :
return data[k]
else :
return selection(data, pivot+1, RIGHT, k)
def partition(a,pivot,high):
i = pivot + 1;
j = high
while True :
while i <high and a[i] < a[pivot]:
i += 1
while j >pivot and a[j] > a[pivot]:
j -= 1
print(input_list)
if j <= i:
break
a[i],a[j] = a[j], a[i]
i += 1
j -= 1
a[pivot],a[j] = a[j], a[pivot]
return j
input_list = [15,3,11,9,12,2,6,8]
print('입력 data = ',input_list)
k = input('k 값을 입력하시오(0부터 '+str((len(input_list)-1)) + ') :')
position = selection(input_list,0,len(input_list)-1,int(k))
print(sorted(input_list))
print('{:2}번째 작은 수는 {:2}이다. '.format(k,position))
먼저 리스트에서 k번째 작은 수를 찾는 코드인데요 실행하면 k번째로 작은수는 뭐다 이렇게 나오는데 뒤에 몇번째 탐색에서 찾아냈는지 알고 싶은데 어떻게 수정해야 할지 모르겠네요...
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력