摘要: 定义 将无序区的元素逐个抽取,放到有序区。有序区初始时,会有一个随机从列表中拿取的元素,作为比较。 当从无序区拿一个元素后,就和有序区的元素逐个做比较,放到合适的位置。 def insert_sort(li): for i in range(1, len(li)): temp = li[i] # 无 阅读全文
posted @ 2022-04-26 14:41 尘。哀 阅读(64) 评论(0) 推荐(0)
摘要: 方法描述 归并排序的思想是想将列表分为两个有序的部分,然后分别在这两个列表中取数,更小的就放在新列表的前面。 为了实现列表的两部分分别是有序的,需要定义方法 def merge(li, low, mid, high): i = low # 最左边的元素 j = mid + 1 # 第二部分列表的起始 阅读全文
posted @ 2022-04-07 22:14 尘。哀 阅读(29) 评论(0) 推荐(0)
摘要: 堆排序 #堆排序 堆从根节点上是否比子节点的数值上更大从而分为大根堆和小根堆。 而从结构又分为,满二叉树和完全二叉树。 满二叉树是每个根节点都有两个子节点。 完全二叉树则是在最后一层从左到右依次存在节点,可以空缺。但是除了最后一层外,其余层都不能空缺。 满二叉树(大根堆) 完全二叉树(最后一层可以有空缺,但 阅读全文
posted @ 2022-04-06 10:47 尘。哀 阅读(29) 评论(0) 推荐(0)
摘要: #方法描述 1、对一个列表,取第一个数为比较数,然后依次从剩下的列表的左右两端取数,分别和比较数做对比。 2、先从列表右边取数,如果比比较数大,则该数的位置不动,继续从右边取数。反之,则将该数放置在比较数的位置上。此时,右边的位置有空缺。 3、当交换了右边的一个数后,则从列表的左边开始取数(比较数不 阅读全文
posted @ 2022-04-04 15:34 尘。哀 阅读(58) 评论(0) 推荐(0)
摘要: #定义 列表每两个相邻的数,如果前面比后面大,则交换这两个数。一趟排序完成后,则无序区减少一个数,有序区增加一个数。 ##算法实现 def bubble_sort(li): for i in range(len(li)): # 每个列表最多需要重复n-1次 for j in range(n-1-i) 阅读全文
posted @ 2022-04-02 11:48 尘。哀 阅读(39) 评论(0) 推荐(0)
摘要: 类中加入__iter__方法后,就可以作为可迭代对象。那么这个可迭代对象的循环次数是多少?取决于yield的数量? 等待更新 阅读全文
posted @ 2022-03-24 14:29 尘。哀 阅读(27) 评论(0) 推荐(0)