广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Python技术 > 正文

Python堆排序_惠州计算机Python软件开发

作者:黄君发布时间:2021-01-13分类:Python技术浏览:940


导读:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。

堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。

实例

def heapify(arr, n, i):

       largest = i

       l = 2 * i + 1      # left = 2*i + 1

       r = 2 * i + 2     # right = 2*i + 2


       if l < n and arr[i] < arr[l]:

           largest = l


       if r < n and arr[largest] < arr[r]:

           largest = r


       if largest != i:

           arr[i],arr[largest] = arr[largest],arr[i]   # 交换


           heapify(arr, n, largest)  


def heapSort(arr):

      n = len(arr)


      # Build a maxheap.

      for i in range(n, -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 = [ 12, 11, 13, 5, 6, 7] 

heapSort(arr) 

n = len(arr) 

print ("排序后") 

for i in range(n):

     print ("%d" %arr[i]),


执行以上代码输出结果为:

排序后
5
6
7
11
12
13


点击咨询直接了解更多相关资料,我在惠州北大青鸟新方舟等你。

343.jpg

标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机Python软件开发惠州Python培训


Python技术排行
标签列表
网站分类
文章归档
最近发表