qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

用python写个堆排序算法

时间2023-03-24 18:40:33 提问来自 广东省深圳市 的网友 分类创作 浏览321
def heap_sort(arr): n = len(arr) # 构建大顶堆,从最后一个非叶子节点开始,从右往左依次构建大顶堆 for i in range(n//2-1, -1, -1): adjust_heap(arr, i, n) # 将最大的元素与未排序的数组的末尾元素交换,将最大元素放到数组末尾,然后重新调整剩余元素为大顶堆 for j in range(n-1, 0, -1): arr[0], arr[j] = arr[j], arr[0] # 交换元素位置 adjust_heap(arr, 0 , j) # 重新调整剩余元素为大顶堆 return arr def adjust_heap(arr, i , length): left = 2 * i + 1 # 左子树的序号 也是当前节点i的左孩子节点序号 也是当前i序号在list中实际位置*2+1得到左孩子在list中实际位置 right = 2 * i + 2 # 右子树的序号 也是当前i序号在list中实际位

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 关于高速公路免费和拥堵的关系 下一篇 围绕冬至展开,可以是对冬至传统习俗、文化内涵的阐述与感悟;可以是冬至时节的家庭团聚、亲情故事;要求主题鲜明,情感真挚,内容积极健康。2. 格式要求:体裁为散文,字数不限