Python3 notes

简介: Python3 notes

Python 归并排序


参考方法:

def merge(s1,s2,s):

   """将两个列表是s1,s2按顺序融合为一个列表s,s为原列表"""

   # j和i就相当于两个指向的位置,i指s1,j指s2

   i = j =0

   while i+j<len(s):

       # j==len(s2)时说明s2走完了,或者s1没走完并且s1中该位置是最小的

       if j==len(s2)or(i<len(s1)and s1[i]<s2[j]):

           s[i+j]= s1[i]

           i +=1

       else:

           s[i+j]= s2[j]

           j +=1


def merge_sort(s):

   """归并排序"""

   n = len(s)

   # 剩一个或没有直接返回,不用排序

   if n <2:

       return

   # 拆分

   mid = n // 2

   s1 = s[0:mid]

   s2 = s[mid:n]

   # 子序列递归调用排序

   merge_sort(s1)

   merge_sort(s2)

   # 合并

   merge(s1,s2,s)



if __name__ =='__main__':

   s =[1,7,3,5,4]

   merge_sort(s)

   print(s)

相关文章
|
XML 存储 前端开发
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
347 0
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
|
JSON 安全 网络安全
DDoS攻击新趋势:海量移动设备成为新一代肉鸡
近期,阿里云安全团队观察到数十起大规模的应用层资源耗尽式DDoS攻击(应用层CC攻击)。阿里云DDoS高防实现智能防护全程自动化检测并清洗,未对用户侧业务产生任何影响,这类攻击存在一些共同的特征,阿里云安全团队对此做了跟踪分析。
|
2天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
12天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
473 199
|
4天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
583 157