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

相关文章
|
6月前
|
网络协议 Python
Python3 notes
Python3 notes
|
4月前
|
Prometheus 运维 监控
kubevela可观测体系问题之KubeVela的用户在描述应用时加入可观测的配置的问题如何解决
kubevela可观测体系问题之KubeVela的用户在描述应用时加入可观测的配置的问题如何解决
|
5月前
|
SQL 数据可视化 数据库
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
23 0
|
JSON 前端开发 JavaScript
前后端分离必备的接口规范,十分接地气!
1. 前言 随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高,后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。
922 0
前后端分离必备的接口规范,十分接地气!
|
缓存 NoSQL MongoDB
Python编程:redis缓存数据库
Python编程:redis缓存数据库
182 0
|
存储 机器学习/深度学习 算法
【小Y学算法】⚡️每日LeetCode打卡⚡️——2.两数相加
🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻 🌲 每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜 🌲 提示:本专栏解题 编程语言一律使用 C# 和 Java 两种进行解题 🌲 要保持一个每天都在学习的状态,让我们一起努力成为算法大神吧🧐! 🌲 今天是力扣算法题持续打卡第2天🎈! 🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻
|
监控 前端开发 .NET
ASP.N“.NET研究”ET MVC开发人员必备的五大工具
  1. Chirpy Zippy   下载地址:上海徐汇企业网站制作rget="_blank">http://chirpy.codeplex.com/   过去,在将JavaScript脚本和CSS文件部署到Web服务器之前,我习惯使用压缩工具进行压缩再部署,安装Chirpy后,你的脚本和CSS文件将会基于其名字自动压缩,例如,假设你有一个名叫myscript.js的脚步文件想要压缩,只要你将其重命名为myscript.yui.js,它就会调用YUI压缩程序自动压缩,压缩后的文件在解决方案资源管理器中显示为一个子项目,你可以继续查看和调试未经压缩的脚本。
1339 0
|
并行计算 异构计算 Python
|
6天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。