Python3 notes

简介: Python3 notes

Python 堆排序

进行堆排序(大根堆)主要解决以下问题:

  • 1)构造大根堆;
  • 2)交换堆顶元素和最小值;
  • 3)重复 2

def help_adjust(L,start,end):

 temp=L[start]

 i=start

 j=2*i

 while j<=end:  # 这里一定要有等于

   if j<endand L[j]<L[j+1]:  # 保证右子树小于左子树

     j+=1

   if temp<L[j]:  # 根节点大于左子树

     L[i]=L[j]

     i=j

     j=2*i

   else:

     break

 L[i]=temp


# 交换堆中元素

def swap_param(L,i,j):

 L[i],L[j]=L[j],L[i]

 return L


def help_sort(L):

 L_length=len(L)-1  # 这里构造的无序列表在最左侧加了一个0用于更好的确定堆顶

 first_sort_count=L_length//2  # 构造辅助变量用于构造大根堆

 for i in range(first_sort_count):

   help_adjust(L,first_sort_count-i,L_length)

 

 for i in range(L_length-1):

   swap_param(L,1,L_length-i)

   help_adjust(L,1,L_length-i-1)


 return[L[i]for i in range(1,len(L))]

相关文章
|
Python
python os.listdir的替代方案os.scandir
python os.listdir的替代方案os.scandir
996 0
|
小程序 JavaScript 算法
开源轻量级 IM 框架 MobileIMSDK 的微信小程序端已发布!
MobileIMSDK - 微信小程序端是一套基于微信原生 WebSocket 的即时通讯库:
430 0
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
1552 2
|
Serverless 定位技术 C++
R语言raster包批量读取单一或大量栅格图像
R语言raster包批量读取单一或大量栅格图像
317 1
|
供应链 Python
Demand Forecasting模型解释与Python代码示例
Demand Forecasting模型解释与Python代码示例
|
运维 安全 API
"揭秘阿里云无影:如何颠覆传统IT,引领未来云计算趋势的神秘力量?"
【8月更文挑战第21天】近年来,云计算深刻改变了企业的IT架构与运营模式。作为国内领先云服务商,阿里云推出的无影云电脑成为创新典范。无影是一种无需实体形态的计算服务,用户可通过终端随时随地访问云端资源。通过帮助大型制造企业实现IT基础设施统一管理、降低运维成本、保障数据安全等,以及支持初创企业低成本快速构建IT环境、按需调整资源、提高工作效率,无影展现了简化IT、提高安全性、灵活资源调配及移动办公等未来云计算趋势。
345 0
|
缓存 负载均衡 安全
探索API接口开发(定制与开发接口)
在当今数字化、互联互通的时代,API(应用程序编程接口)已经成为连接不同软件、服务和应用的关键桥梁。API接口开发,作为软件架构和系统设计的重要组成部分,不仅影响着数据交换的效率,更决定了整个系统的灵活性和可扩展性。本文将深入探讨API接口开发的各个方面,包括其重要性、开发流程、最佳实践以及面临的挑战。
|
监控 安全 关系型数据库
稳定性之故障应急处理流程
尽管可以通过稳定性体系建设,来避免出现生产系统故障。但是仍然无法彻底避免一点风险都不会产生,当稳定性风险产生后,怎么快速协调组织,缩短故障时长,科学的流程呢?
稳定性之故障应急处理流程
|
SQL 监控 Java
Flink报错问题之cdc代码报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
Linux 开发工具 Windows
远程桌面for linux
远程桌面for linux
126 0
远程桌面for linux