最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • Python中实现堆排序算法的概念及代码

    堆排序算法概念 python实现堆排序算法

    了解堆排序算法的前提是要知道完全二叉树和堆数据结构。堆排序算法是将数组可视化为完全二叉树,因此也被称之为“堆”。

    堆排序算法原理

    1、根据最大堆属性,数据组中最大的项存储在根节点

    2、去掉根元素,放到数组的末尾(第n个位置),把树的最后一项,放到空缺的地方。

    3、将堆的大小减少1。

    4、再次堆化根元素

    5、重复该过程,直到列表中的所有项目都被排序

    Python实现堆排序算法

    指定数组arr= 1 12 9 5 6 10
    
    def heapify(arr, n, i):
          largest = i
          l = 2 * i + 1
          r = 2 * i + 2
      
          if l < n and arr[i] < arr[l]:
              largest = l
      
          if r < n and arr[largest] < arr[r]:
              largest = r
      
    heapifying
          if largest != i:
              arr[i], arr[largest] = arr[largest], arr[i]
              heapify(arr, n, largest)
      
    def heapSort(arr):
          n = len(arr)
      
          for i in range(n//2, -1, -1):
              heapify(arr, n, i)
      
          for i in range(n-1, 0, -1):
              arr[i], arr[0] = arr[0], arr[i]
      
              heapify(arr, i, 0)
      
      arr = [1, 12, 9, 5, 6, 10]
      heapSort(arr)
      n = len(arr)
      print("Sorted array is")
      for i in range(n):
          print("%d " % arr[i], end='')
    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » Python中实现堆排序算法的概念及代码
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情