随笔分类 -  算法

摘要:part4:归并排序归并排序的基本思想是分而治之(D&C)。D&C的工作原理如下:找出最简单的基线条件;确定如何缩小问题的规模,使其符合基线条件。归并排序的动态图如下: 注意点:在排序过程中我们引入一个中间列表(tmpArr),用来存放合并后的列表。代码实... 阅读全文
posted @ 2018-09-13 14:47 卅先生 阅读(197) 评论(0) 推荐(0)
摘要:part1:冒泡排序冒泡排序的核心:一步一步交换相邻位置的数据!代码示例for 循环实现。def bubble_sort1(arr): # 交换的细节 def swap(i,j): arr[i],arr[j]=arr[j],arr[... 阅读全文
posted @ 2018-09-11 17:37 卅先生 阅读(141) 评论(0) 推荐(0)
摘要:简介堆排序是一种不稳定的排序算法。堆排序的时间复杂度为O(NlogN)。堆排序有两种实现方式。基于递归函数的实现,其额外空间复杂度为O(logN);非递归实现的额外空间复杂度为O(1)。这里讨论的是非递归的实现方式。堆分为大根堆和小根堆,是完全二叉树。对于完... 阅读全文
posted @ 2018-09-11 17:28 卅先生 阅读(181) 评论(0) 推荐(0)