04 2022 档案
摘要:定义 将无序区的元素逐个抽取,放到有序区。有序区初始时,会有一个随机从列表中拿取的元素,作为比较。 当从无序区拿一个元素后,就和有序区的元素逐个做比较,放到合适的位置。 def insert_sort(li): for i in range(1, len(li)): temp = li[i] # 无
阅读全文
摘要:方法描述 归并排序的思想是想将列表分为两个有序的部分,然后分别在这两个列表中取数,更小的就放在新列表的前面。 为了实现列表的两部分分别是有序的,需要定义方法 def merge(li, low, mid, high): i = low # 最左边的元素 j = mid + 1 # 第二部分列表的起始
阅读全文
摘要:
#堆排序 堆从根节点上是否比子节点的数值上更大从而分为大根堆和小根堆。 而从结构又分为,满二叉树和完全二叉树。 满二叉树是每个根节点都有两个子节点。 完全二叉树则是在最后一层从左到右依次存在节点,可以空缺。但是除了最后一层外,其余层都不能空缺。 满二叉树(大根堆) 完全二叉树(最后一层可以有空缺,但
阅读全文
#堆排序 堆从根节点上是否比子节点的数值上更大从而分为大根堆和小根堆。 而从结构又分为,满二叉树和完全二叉树。 满二叉树是每个根节点都有两个子节点。 完全二叉树则是在最后一层从左到右依次存在节点,可以空缺。但是除了最后一层外,其余层都不能空缺。 满二叉树(大根堆) 完全二叉树(最后一层可以有空缺,但
阅读全文
摘要:#方法描述 1、对一个列表,取第一个数为比较数,然后依次从剩下的列表的左右两端取数,分别和比较数做对比。 2、先从列表右边取数,如果比比较数大,则该数的位置不动,继续从右边取数。反之,则将该数放置在比较数的位置上。此时,右边的位置有空缺。 3、当交换了右边的一个数后,则从列表的左边开始取数(比较数不
阅读全文
摘要:#定义 列表每两个相邻的数,如果前面比后面大,则交换这两个数。一趟排序完成后,则无序区减少一个数,有序区增加一个数。 ##算法实现 def bubble_sort(li): for i in range(len(li)): # 每个列表最多需要重复n-1次 for j in range(n-1-i)
阅读全文

浙公网安备 33010602011771号