Python3 notes

简介: Python3 notes

Python 堆排序


堆排序(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

相关文章
|
4月前
|
监控 Linux
Linux命令大全:echo与tail实现输出重定向。
这样,我们实现了使用echo和tail命令进行输出重定向的目的。在实际应用中,输出重定向技巧可节省时间,提高工作效率。希望本文内容对您了解和掌握Linux系统中echo与tail命令以及输出重定向的操作有所帮助。
151 27
|
索引
python--切片,字符串操作
python--切片,字符串操作
|
JavaScript 数据管理
VUE第十七天
VUE第十七天
88 0
天猫双11已有342个品牌成交额破亿
今年天猫双11将有更多品牌加入“亿元俱乐部”。
天猫双11已有342个品牌成交额破亿
|
存储 Android开发 数据安全/隐私保护
Android--登录界面(demo)
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/80243581 import android.
1504 0
|
Web App开发 开发工具
|
2天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1077 0
|
11天前
|
人工智能 运维 安全
|
10天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。