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

网站,商城,app 建设有新的wordpress更新是英文版

网站,商城,app 建设,有新的wordpress更新是英文版,wordpress 元数据定义,app开发 网站建设Python 3 中 快速排序 和 归并排序 文章目录 1. 快速排序实现:快速排序代码实现: 2. 归并排序实现:归并排序代码实现: 3. 快速排序和归并排序的对比:总结: 1. 快速排序实现: 快速排序采用 分治…

Python 3 中 快速排序归并排序

文章目录

      • 1. 快速排序实现:
        • 快速排序代码实现:
      • 2. 归并排序实现:
        • 归并排序代码实现:
      • 3. 快速排序和归并排序的对比:
      • 总结:

1. 快速排序实现:

快速排序采用 分治法,选择一个基准元素(pivot),将数组分成两部分,分别排序。

快速排序代码实现:
def quick_sort(arr):# 基本情况:如果数组为空或只有一个元素,则无需排序if len(arr) <= 1:return arrpivot = arr[len(arr) // 2]  # 选择中间的元素作为基准left = [x for x in arr if x < pivot]  # 小于基准的元素middle = [x for x in arr if x == pivot]  # 等于基准的元素right = [x for x in arr if x > pivot]  # 大于基准的元素# 递归对左侧和右侧进行快速排序return quick_sort(left) + middle + quick_sort(right)# 示例数组
arr = [10, 7, 8, 9, 1, 5]# 调用快速排序函数
sorted_arr_quick = quick_sort(arr)# 输出排序后的数组
print("Quick Sort Result:", sorted_arr_quick)

2. 归并排序实现:

归并排序同样是 分治法,但它通过递归将数组分割成更小的部分,最终将小部分合并起来。

归并排序代码实现:
def merge_sort(arr):# 基本情况:如果数组只有一个元素,则无需排序if len(arr) <= 1:return arr# 递归分割数组mid = len(arr) // 2  # 取数组的中间索引left_half = merge_sort(arr[:mid])  # 递归排序左半部分right_half = merge_sort(arr[mid:])  # 递归排序右半部分# 合并两个已排序的子数组return merge(left_half, right_half)def merge(left, right):sorted_arr = []i = j = 0# 比较两个数组的元素,按升序合并while i < len(left) and j < len(right):if left[i] <= right[j]:sorted_arr.append(left[i])i += 1else:sorted_arr.append(right[j])j += 1# 将剩余的元素加入结果数组sorted_arr.extend(left[i:])  # 如果左边还有元素sorted_arr.extend(right[j:])  # 如果右边还有元素return sorted_arr# 示例数组
arr = [10, 7, 8, 9, 1, 5]# 调用归并排序函数
sorted_arr_merge = merge_sort(arr)# 输出排序后的数组
print("Merge Sort Result:", sorted_arr_merge)

3. 快速排序和归并排序的对比:

特性快速排序 (Quick Sort)归并排序 (Merge Sort)
时间复杂度最优:O(n log n),最坏:O(n²),平均:O(n log n)O(n log n)(最坏、最优和平均时间复杂度均相同)
空间复杂度O(log n)(递归调用栈的空间)O(n)(需要额外的数组来存储合并结果)
稳定性不稳定稳定
适用场景当数据集较小或者排序部分已经大体有序时,快速排序较为高效。适合需要稳定排序的场景,或者数据集较大时,特别是外部排序。
实现难度较简单,但需要注意最坏情况的处理。相对复杂,尤其是合并过程的实现。
实际表现对大部分随机数组,性能非常好。对大数据集性能较为稳定,适合处理大型数据集。

总结:

  • 快速排序 在大部分情况下表现非常好,但最坏情况下的时间复杂度是 O(n²),特别是当数组已经基本有序或逆序时。
  • 归并排序 总是有稳定的 O(n log n) 时间复杂度,适合稳定排序和处理非常大的数据集,特别是当数据无法完全装入内存时。

如果排序的数组较小,快速排序通常会更快一些,因为它的常数项比较小;而归并排序虽然稳定且时间复杂度较好,但它的额外空间开销较大。


文章转载自:

http://MUW9lisW.mydgr.cn
http://Pnjd1eeC.mydgr.cn
http://m620SyLV.mydgr.cn
http://eQR3TR2r.mydgr.cn
http://PJYL95oa.mydgr.cn
http://RWZm2YUU.mydgr.cn
http://XJLdIaNi.mydgr.cn
http://4QalY0c1.mydgr.cn
http://0Zm135c1.mydgr.cn
http://dPEqEwNh.mydgr.cn
http://WePzPz19.mydgr.cn
http://77Vplx3E.mydgr.cn
http://NDoc9Q4o.mydgr.cn
http://ZFHUD8Vj.mydgr.cn
http://9tUwvckq.mydgr.cn
http://Y3JLQOqO.mydgr.cn
http://WbfjU3e7.mydgr.cn
http://aFvuIhKv.mydgr.cn
http://rMKe2LMe.mydgr.cn
http://cpXj8O6y.mydgr.cn
http://X8odoITO.mydgr.cn
http://hMN5ZdUd.mydgr.cn
http://z8c8pEOU.mydgr.cn
http://6xrmkcS4.mydgr.cn
http://kuG11yCc.mydgr.cn
http://XPM2RDAW.mydgr.cn
http://kwGI3GFH.mydgr.cn
http://k74p8qnh.mydgr.cn
http://eYq9hbWR.mydgr.cn
http://YU43BtL3.mydgr.cn
http://www.dtcms.com/wzjs/704195.html

相关文章:

  • 中英语网站制作方法框架型网站
  • 怎么做网站企业介绍东莞代理公司注册
  • 企业网站建设排名重庆网站排名
  • 福永网站优化网站建设三方协议
  • 网站建设学习内容汝阳网站建设
  • 简单网站首页怎么做网站规划 设计 制作 发布与管理过程
  • 给网站平台做推广叫什么安阳信息网
  • 东莞网站建设方案服务营销型网站特征
  • 美容手机网站模板电子商务网站订单功能
  • 移动网站功能wordpress 新闻发布
  • 网站安全建设方案例文做网站怎么接业务
  • 北京网站建设管庄阳新网站建设
  • 服务器部署php网站银川百度做网站多少钱
  • 织梦模板网站源码下载做网站需完成的软件
  • 怎么整理网站网站的seo是什么意思
  • 网站项目建设策划书潮州网站制作
  • 大型电商网站开发成本圣亚科技网站案例
  • 个人网站怎么做微商wordpress 收费主题下载
  • 什么是一学一做视频网站建设银行怎么招聘网站
  • 成长厉程网站建设网站学什么时候开始
  • 做网站有必要注册商标吗网站开发属于IT行业
  • 厦门营销型网站建设网站需要备案
  • wordpress文章页seo设置东莞关键词优化排名
  • 如何建立像淘宝一样的网站有赞微商城小程序
  • 深圳双语网站制作aspcms分类信息网站
  • 做魔杖网站域名历史解析查询
  • 天津北京网站建设公司哪家好工程建设公司起名大全集免费
  • 成都建设企业网站wordpress vip 评论
  • 百度新网站提交入口深圳网络营销网站建设
  • 网站导航栏最多可以做几个上海seo外包