python堆排序输出下标的方法是什么

   2025-02-15 9150
核心提示:在Python中,可以使用heapq模块来实现堆排序,并输出元素的下标。下面是一个示例代码:import heapqdef heap_sort_with_index(ar

在Python中,可以使用heapq模块来实现堆排序,并输出元素的下标。

下面是一个示例代码:

import heapqdef 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]。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言