亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

python堆排序輸出下標的方法是什么

小億
89
2023-10-22 02:53:26
欄目: 編程語言

在Python中,可以使用heapq模塊來實現堆排序,并輸出元素的下標。

下面是一個示例代碼:

import heapq

def heap_sort_with_index(arr):
    heap = []
    for i, num in enumerate(arr):
        heapq.heappush(heap, (num, i))
    
    sorted_arr = []
    while heap:
        sorted_arr.append(heapq.heappop(heap)[1])
    
    return sorted_arr

在上面的代碼中,我們使用heapq.heappush()將元素(num, i)加入到堆中,其中num是數組中的元素,i是該元素的下標。這樣,heap中的每個元素都是一個元組,元組的第一個元素是數組中的元素,第二個元素是該元素的下標。

然后,我們使用heapq.heappop()從堆中彈出元素,并將其下標添加到sorted_arr中。最終,返回sorted_arr,即按從小到大排序的元素下標列表。

示例使用:

arr = [4, 2, 7, 1, 9, 5]
sorted_indexes = heap_sort_with_index(arr)
print(sorted_indexes)  # 輸出 [3, 1, 0, 5, 2, 4]

上述示例中,原始數組arr為[4, 2, 7, 1, 9, 5],經過堆排序后,得到的元素下標列表為[3, 1, 0, 5, 2, 4]。

0
彭阳县| 新龙县| 永定县| 江阴市| 全州县| 辽源市| 北宁市| 淮阳县| 张家界市| 九龙坡区| 略阳县| 衡阳县| 曲阳县| 武穴市| 古交市| 漾濞| 滨海县| 苍溪县| 青川县| 邯郸市| 湖北省| 黄陵县| 阿拉善右旗| 凤山县| 恭城| 松桃| 柳林县| 文水县| 黄大仙区| 唐山市| 襄汾县| 龙南县| 华蓥市| 涟水县| 太湖县| 池州市| 昔阳县| 边坝县| 兴仁县| 太康县| 玛沁县|