摘要:
递归排序: 首先讲下合并两个有序集合 有两个有序的序列,分别为 [1,4,7] ,[2,3,5],现在请考虑将这两个序列合并成一个有序的序列 1 首先创建一个新的序列,分别从两个序列中取出第一个数,1和2,1比2小,把1放到新的序列中 2 第一个序列中的1已经放到新序列中,那么拿出4来进行比较,2比 阅读全文
摘要:
递归函数: 1.递归函数就是函数内部会调用函数本身: def my_print(content, count): print(content) if count == 1: return my_print(content, count-1) my_print('ok', 2) ''' 输出: ok 阅读全文
摘要:
快速排序: 思路可以归结为3个步骤: 1 从待排序数组中随意选中一个数值,作为基准值 2 移动待排序数组中的元素,是的基准值左侧的数值都小于等于它,右侧的数值大于等于它 3 基准值将原来的数组分为两部分,针对这两部分,重复步骤1,2, 3 先实现1、2步骤的分区 分区虽然没有让整个数组变得有序,但是 阅读全文
摘要:
希尔排序,又称缩小增量排序,其实就是改进版的插入排序 当待排序列基本有序的情况下,插入算法的效率非常高,那么希尔排序就是利用这个特点对插入算法进行了改造升级 希尔排序的关键是对待排序进行分组,这个分组并不是真的对序列进行了拆分,而仅仅是虚拟的分组,增量是分组时所使用的步长 如: #待排序数组 4,1 阅读全文
摘要:
选择排序: 假设有一个序列,a[0],a[1],a[2]...a[n]现在,对它进行排序。我们先从0这个位置到n这个位置找出最小值,然后将这个最小值与a[0]交换; 然后将a[0]排除,在a[1]到a[n]之间找到最小值,将这个值和a[1]交换,重复这个过程,知道最后一个 def select_so 阅读全文
摘要:
插入排序: 每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕 先进行第一步: 这一步是实现第一个待排序数字插到已经排好顺序的地方去 def insert(lst, index): """ 列表lst从索引0到索引index-1 都是有序的 函数将索引index位置上的 阅读全文
摘要:
冒泡排序 核心思想即是相邻的两个数据进行比较: 假设数列A有n个数据,首先比较A[0]和A[1],确保较大的数在右边,后面重复同样的动作, 一直到最大值在最右边,但是这样得到的数据仍然是无序的,只不过是找到了最大值, 接下来要把最大值排除在外,再重复这个过程。。。。。 #实现剔除最大值后找最大值的过 阅读全文