정수 목록이 있습니다.이 정렬되지 않은 목록의 중앙값을 찾기 위해 선택 항목을 사용하고 싶습니다. 이것은 지금까지 가지고있는 것이지만, 테스트 목록 [140, 240, 180, 400, 340]
에 대해서는 결과물을 얻지 못하고 있습니다. 누군가가 중간 값을 얻기 위해해야 할 일을 설명 할 수 있습니까?선택 알고리즘을 사용하여 정렬되지 않은 목록의 중간 값 얻기
내 코드
def fastSelect(aList, k):
count = 0
pivot = 0
smallerList = []
largeList = []
while aList != []:
pivot == len(aList)//2
for i in range(0,pivot):
smallerList.append(aList[i])
for j in range(pivot + 1,len(aList)):
largeList.append(aList[j])
for g in range(0,len(aList)):
if aList[g] == pivot:
count += 1
m = len(smallerList)
if k >= m and k < m + count:
return pivot
if m > k:
aList = smallerList
else:
k = k - m - count
aList = largeList
왜 출력을 기대 했습니까? 들여 쓰기가 해제되어 있고 아무 것도 반환하지 않습니다. – jonrsharpe
들여 쓰기가 꺼져 IDE에서 꺼내집니다. 죄송합니다. – acloudypsychopass
나는 또한 내가 선택을 완전히 이해하지 못한다고 말하고 나는 온라인으로 읽은 것에서 뭔가를 시도하고있다. – acloudypsychopass