![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
best_od
这个作者很懒,什么都没留下…
展开
-
堆排序的python实现
堆排序的python实现如图所示,堆类似于一棵二叉树,每个节点最多有两个子结点,根据堆的特点,又分为大顶堆和小顶堆。对于大顶堆,每个结点的值均大于其子结点的值,小顶推则恰恰相反,每个结点的值均小于其子结点的值。而对排序结构虽然类似于二叉树,不过确是在列表结构上实现排序的,当结点 i 存在子结点时,其左子结点的索引必定为2i,其右结点的索引则必定为2i+1,根据这个,我们便能在列表的基础上实现...原创 2018-11-16 21:49:01 · 196 阅读 · 0 评论 -
最大子数组问题的python实现
最大子数组问题的python实现‘’’给定一个无序数组,其中包含正数和负数,要求找出该数组中连续的几个数,其和相加为最大‘’’#1、暴力法,遍历该该数组中所有子数组import randomdef max_violent(arr):max=-100a=0b=0for i in range(len(arr)): #每次所取子数组的头for j in ...原创 2018-11-07 19:18:45 · 1377 阅读 · 0 评论 -
快速排序的python版本
快速排序的python版本快速排序属于分治算法中最经典的一个实例,不同于冒泡排序和选择排序,快排的思想是选定一个基准元素,根据该元素对列表进行初步排序,选出比该元素小的排在该元素之前,比该元素大的排在其后,然后,在对这两组元素进行递归排序。关于快排的结构,书本上大致分为两类,单向快排和双向快排。算法导论介绍的快排属于单向快排,始终从一个方向对列表进行排序,将列表划分。代码如下def qui...原创 2018-11-19 20:37:00 · 256 阅读 · 0 评论