当前位置: 首页 > news >正文

云南建设厅网站首页一元友情链接平台

云南建设厅网站首页,一元友情链接平台,上海人才网官网招聘人力资源专业,wordpress英文怎么转换中文1、基本思想 归并排序采用分治法 (Divide and Conquer) 的一个非常典型的应。归并排序的思想就是先递归分解数组,再合并数组。归并排序是一种稳定的排序方法。 将数组分解最小之后(数组中只有一个元素,数组有序);然后…

1、基本思想

归并排序采用分治法 (Divide and Conquer) 的一个非常典型的应。归并排序的思想就是先递归分解数组,再合并数组。归并排序是一种稳定的排序方法。

将数组分解最小之后(数组中只有一个元素,数组有序);然后合并两个有序数组,基本思路是比较两个数组的最前面的数谁小就先取谁,然后相应的指针就往后移一位;然后再比较,直至一个数组为空;最后把另一个数组的剩余部分复制过来即可。

和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是 O(nlogn) 的时间复杂度;代价是需要额外的内存空间。

2、算法分析

归并排序算法是一个递归过程,边界条件为当输入序列仅有一个元素时,直接返回,具体过程如下:

  1. 如果输入内只有一个元素,则直接返回,否则将长度为 n 的输入序列分成两个长度为 n/2 的子序列;
  2. 分别对这两个子序列进行归并排序,使子序列变为有序状态;
  3. 设定两个指针,分别指向两个已经排序子序列的起始位置;
  4. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间(用于存放排序结果),并移动指针到下一位置;
  5. 重复步骤 3 ~ 4 直到某一指针达到序列尾;
  6. 将另一序列剩下的所有元素直接复制到合并序列尾

3、代码实现

(1)python实现

#!/usr/bin/python3
# -*- coding: utf-8 -*-def merge_sort(data: list[int]):if len(data) <= 1:return datanum = len(data) // 2left = merge_sort(data[:num])right = merge_sort(data[num:])return merge(left, right)def merge(l1:list[int], l2: list[int]) -> list[int]:i, j = 0, 0res = list()while i < len(l1) and j < len(l2):if l1[i] < l2[j]:res.append(l1[i])i += 1else:res.append(l2[j])j += 1# 左边元素遍历结束if i == len(l1):res += l2[j:]# 右边元素遍历结束if j == len(l2) :res += l1[i:]return resdef main():data = [54, 26, 93, 17, 77, 31, 45, 55, 20]# data = [3,1,5,2,1,0]# data = [7, 31, 23, 13, 35, 3]print(f"排序前:{data}")res = merge_sort(data)print(f"排序后:{res}")if __name__ == '__main__':main()

排序前:[54, 26, 93, 17, 77, 31, 45, 55, 20]
排序后:[17, 20, 26, 31, 45, 54, 55, 77, 93]

http://www.hkea.cn/news/735742/

相关文章:

  • 怎么用路由器做网站百度指数平台官网
  • 济南做网站互联网公司有哪些seo是什么公司
  • 辛集seo网站优化价格许昌网站seo
  • 网站建设后期维护百度快速收录技术
  • 网站建设中的推广工作seo学校培训
  • 上海专业网站建设网百度搜索推广开户
  • 做学校网站素材图片合肥seo代理商
  • 真题真做报名网站淘宝搜索关键词排名
  • 免费的黄冈网站有哪些平台?培训行业seo整站优化
  • 寿县住房与城乡建设局网站真正免费的网站建站平台
  • 常德seo招聘网站seo站长工具
  • 网站开发多久完成俄罗斯搜索引擎yandex推广入口
  • 漳州做网站建设建网站免费
  • 网站建设服务上海广州软文推广公司
  • 做一个网站app需要多少钱web制作网站的模板
  • 网站建设的财务计划新媒体营销策略有哪些
  • 网站建设分金手指专业二八宁波品牌网站推广优化
  • 清远网站建设公司百度游戏风云榜
  • 网上可以自学什么技术win7系统优化软件
  • 嘉兴建站软件如何做好企业网站的推广
  • 在凡科做网站短视频推广
  • 深圳推广公司推荐q群排名优化软件
  • 什么网站做简历模板宁德市医院
  • 用什么软件做公司网站游戏推广赚佣金的平台
  • 购物网站 后台模板河北seo技术培训
  • 聊城建设委员会官方网站google seo
  • 广西建设网郭业棚seo推广具体做什么
  • 武汉网站seo诊断谷歌下载官网
  • 做地方网站能赚钱吗免费seo网站诊断
  • 图片设计在线网站推广优化外包便宜