第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python第K小快速排序

python第K小快速排序

陪伴而非守候 2023-08-22 16:12:39
我必須獲得未排序數(shù)組中的第 K 個最小元素。我不想對整個數(shù)組進行排序,而是只嘗試對包含第 K 個元素的子數(shù)組進行排序。然后我打印從 0 到 len(array) 的所有 K 個值array = [6,5,4,3,2,1]def quick_sort(lst, k):    if len(lst) <= 1:        return lst    else:        p = (lst[0] + lst[len(lst)-1])/2        left = [x for x in lst if x <= p]        right = [x for x in lst if x > p]                if  k > len(left) -1 :            k = k - len(left)+1            return quick_sort(right,k)        else:            return quick_sort(left, k)  for i in range(len(array)):        print(*quick_sort(array,i+1))我想要得到 1,2,3,4,5,6,但我的代碼得到 2,3,5,6,6,6。我需要改變什么?PS 主要思想不是對所有數(shù)組進行排序,也不使用 python 排序函數(shù)
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

array = [6, 5, 4, 3, 2, 1]


def quick_sort(lst, k):

    if len(lst) <= 1:

        return lst

    else:

        p = (lst[0] + lst[-1]) / 2

        left = [x for x in lst if x <= p]

        right = [x for x in lst if x > p]


        if k > len(left):

            k = k - len(left)

            return quick_sort(right, k)

        else:

            return quick_sort(left, k)


for i in range(len(array)):

    print(*quick_sort(array, i + 1))


查看完整回答
反對 回復 2023-08-22
  • 1 回答
  • 0 關注
  • 1589 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號