算法基础
Jessica__WEI
用自己的方式热爱这个世界
展开
-
查找算法:二分查找(python)
原理:二分查找又称折半查找,binary search,是一种效率较高的查找方法。该算法将数组的中间元素与查找元素进行比较,如果相等,则查找结束; 如果查找元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半数组中查找,而且也是从中间元素开始比较,重复以上过程,直到找到满足条件的结果。 如果在某一步骤中数组为空,则表示找不到。该查找算法每一次比较都使搜索范围缩小一半。代码:原创 2018-01-22 20:23:11 · 1822 阅读 · 0 评论 -
经典排序算法:快速排序(python)
原理:快速排序是一种交换类排序,是对冒泡排序的一种改进,是分治法的经典表现。首先通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 算法具体步骤: (1)、挑选一个元素作为基准key,一般取第一个元素; (2)、设置两个变量i、j,分别代表原创 2018-01-25 14:43:48 · 245 阅读 · 0 评论 -
经典排序算法:堆排序(python)
原理:堆排序是指利用堆(最大堆、最小堆)这种数据结构所设计的一种排序算法。其中堆是一种完全二叉树的结构,并满足子结点的键值或索引总是小于(或者大于)它的父结点。 用最大堆排序的基本思想:堆排序从最大堆的顶部不断取走堆顶元素放到有序序列中,直到堆的元素被全部取完。 算法过程: (1)、建堆:从len/2到第一个节点0处一直调用调整堆的过程,其中len为数组长度,len/2表示节点深度。原创 2018-01-26 15:28:20 · 569 阅读 · 0 评论 -
经典排序算法:归并排序(python)
原理:归并排序也是采用分治法,它将待排序序列分为若干个子序列,先使每个子序列有序,然后再将已有有序子序列合并为整体有序序列。 算法分为两步:递归和合并 (1)、递归:先把待排序数组以中点二分,接着把左边子数组继续二分,再把右边子数组继续二分,直到数组长度小于等于1,最后把左子数组和右子数组合并为有序的区间,合并步骤见(2)。 (2)、合并:比较左子数组a[i]和右子数组b[j]的元素,若a[i原创 2018-01-25 15:24:07 · 420 阅读 · 0 评论