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

网站建设课程设计内容匠王红木在那个网站做众筹

网站建设课程设计内容,匠王红木在那个网站做众筹,网站改完域名打开速度慢,保定附近的做网站价格数据结构 —— 手写排序算法 一、堆排序二、快速排序 能手撸堆排序和快速排序#xff0c;相信你在面试中已经能应付大部分排序问题了。 一、堆排序 建堆算法在面试中非常常见#xff0c;我曾经就遇到过。因此为避免踩坑#xff0c;特此开记录帖。堆必须是一棵完全二叉树相信你在面试中已经能应付大部分排序问题了。 一、堆排序 建堆算法在面试中非常常见我曾经就遇到过。因此为避免踩坑特此开记录帖。堆必须是一棵完全二叉树分为 大根堆。每个父节点元素 子节点小根堆。每个父节点元素 子节点 一、参考文章或视频链接[1] 【【从堆的定义到优先队列、堆排序】 10分钟看懂必考的数据结构——堆】- bilibili[2] 《算法》(第4版) - chapter 2.4 堆排序 - bilibili # coding:utf-8 # Time: 2024/1/5 下午9:10 # Author: 键盘国治理专家 # File: quick_sort.py # Description:# 大根堆建堆然后交换到数组最末尾就是升序排序了 def heapify(arr, n, i):largest i # 初始化最大值为当前位置ileft 2*i 1 # 左子节点right 2*i 2 # 右子节点#if left n and arr[i] arr[left]: # 左子节点存在且比当前位置大largest left # 更新最大值为左子节点的位置if right n and arr[largest] arr[right] # 右子节点存在且比当前位置大largest rightif largest ! i: # 最大值的位置已经被改动了不再等于开始时的i了则需要将最大值上浮arr[i], arr[largest] arr[largest], arr[i]heapify(arr, n, largest) # 再递归重复此过程堆交换后的子树继续堆化def heap_sort(arr):n len(arr)# (1)构建最大堆从最后一个非叶子节点开始依次进行堆化也就是自底向上建堆可以看参考视频[2]。最后一个非叶子节点这样理解如果将叶子节点视作一棵树那么孤零零的一个节点本身就是一个堆。所以不需要建堆但这不意味着这些叶子节点在随后的建堆过程中不参与交换只是不以这些叶子节点为中心进行建堆。for i in range(n//2 - 1, -1, -1):heapify(arr, n, i) # arr为建堆数组n表示建堆范围为[0,n-1]共n个i表示堆arr[i]元素进行调整建堆for i in range(n-1, -1, -1):arr[i], arr[0] arr[0], arr[i]heapify(arr, i, 0) # 对[0,i-1]的元素继续建堆if __name__ __main__:# 示例用法nums [10, 80, 30, 90, 40, 50, 70, -123]print(排序前的数组为, nums)heap_sort(nums)print(排序后的数组:, nums) 二、快速排序 二、参考文章或视频链接[1] 《快速排序——hoare版本挖坑法双指针法》- CSDN[2] 【快速排序双指针法动画演示】- bilibili 快速排序重在轴点pivot的选择与交换过程上。 # coding:utf-8 # Time: 2024/1/5 下午9:10 # Author: 键盘国治理专家 # File: quick_sort.py # Description:def quick_sort(nums, low, high):if low high:# 找到轴的位置。这句话是说轴一旦确定了就意味着这个元素已经被放置在数组的正确位置了后面不会再变动partition函数本身就带有排序性质的交换操作pivot partition(nums, low, high)# print(arr)quick_sort(nums, low, pivot - 1)quick_sort(nums, pivot 1, high)def partition(nums, low, high):# (1)最左边的元素被选为轴点pivot_index lowwhile low high:# (2)high从右往左遍历直到找到一个比轴点小的数字并交换while nums[high] nums[pivot_index]:high - 1if nums[pivot_index] nums[high]:nums[pivot_index], nums[high] nums[high], nums[pivot_index]pivot_index high# (3)low从左往右遍历直到找到一个比轴点大的数字并交换while nums[low] nums[pivot_index]:low 1if nums[low] nums[pivot_index]:nums[pivot_index], nums[low] nums[low], nums[pivot_index]pivot_index low# (4)返回轴点的最终位置return pivot_indexif __name__ __main__:nums [10, 80, 30, 90, 40, 50, 70, -123]print(排序前的数组为, nums)quick_sort(nums, 0, len(nums) - 1)print(排序后的数组为, nums)
http://www.zqtcl.cn/news/120941/

相关文章:

  • 微网站建设网站洛阳制作网站公司哪家好
  • 凤翔做网站wordpress分销商城
  • 网站产品网页设计模板企业网站优化关键词
  • 电商网站建设去迅法网网站管理与建设试题
  • 做网站必须知道的问题wordpress制作论坛
  • 怎样在建设部网站查资质证书网页设计有哪些岗位
  • 安徽中色十二冶金建设有限公司网站cad制图初学入门
  • 开发网站监控工具网上开店怎么找货源
  • 标准网站建设报价单私密浏览器直播
  • wordpress焦点图网站seo分析
  • 域名申请哪个网站好江西有色建设集团有限公司网站
  • 新乡市做网站的公司百度推广开户费用多少
  • 免费建网站哪个平台好php 未定义函数wordpress
  • 个人网站 域名选择郑州那家做网站便宜
  • 网站建设技术合伙人的技术股份全国免费发布信息网站大全
  • 兼职网站平台有哪些新手怎么学做网站
  • 有没有直接做网站的软件iis一个文件夹配置多个网站
  • 网站怎么屏蔽ip访问信息发布网站建设
  • 陕西省住房城乡建设厅网站管理中心电信服务器
  • 外国优秀网站设计程序员做任务的网站
  • 购物网站项目经验开发一个游戏软件需要多少钱
  • 专业的大连网站建设电商网站支付方案
  • 手机如何建设网站首页株洲搜索引擎优化
  • 辉县市建设局网站制作网站站用的软件下载
  • 什么网站广告做多有没有不花钱建设网站的方法
  • 网站开发技术总监面试题五大门户网站分别是
  • 福州自助建设网站网站开发工具蜡笔小新
  • 扬州市住房和城乡建设网站html5 后台网站模板
  • 网站建设与设计意义宜兴做宠物的网站
  • 苏州建设工程人才招聘网信息网站wordpress前端库加速