
算法
以后只喝粥
这个作者很懒,什么都没留下…
展开
-
回溯算法
回溯算法什么是回溯算法解决一个回溯问题,本质上就是一个决策树的遍历过程,需要思考三个点:路径:就是已经做出的选择选择列表:就是当前可以做出的选择结束条件:就是到达底层,无法再做选择的条件回溯算法的框架// 回溯算法的框架result = []def backtrack(路径,选择列表): if(满足结束条件): result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径,选择列原创 2021-04-23 10:34:08 · 107 阅读 · 0 评论 -
插入排序
插入排序介绍插入排序(insert-sort)是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法执行步骤将序列化成两部分,一个是后面待排序的元素 另一部分是前面已经排好的序列拿待排序的元素值 和前面的排好的序列 进行比较 如果找到比它大的元素(假设是降序)插入到它的后面 之前没有它大的元素 就向后移动 也就是向后赋值重复上面的过程代码实现/** * 插入排序 降序 * @author le */p原创 2021-03-30 11:14:46 · 113 阅读 · 0 评论 -
选择排序
选择排序介绍选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。算法执行步骤首先遍历一遍,在未排序序列中找到最大(小)的元素,然后放到序列的起始位置在从剩下的元素中继续寻找最大(小)的元素,放到剩下元素的开始然后重复执行第二步,直到序列有序代码实现/** * 选择排序 * @author le */public class SelectorSort { pu原创 2021-03-30 10:58:34 · 130 阅读 · 0 评论 -
冒泡排序
冒泡排序介绍冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小或者最大的元素会经由交换慢慢"浮"到数列的顶端。算法执行步骤两两之间互相比较,如果第一个比第二个大,就交换他们两个;一直循环往复,从刚开始一直到最后,遍历完之后,最后的元素会成为最大的数;然后重复上面的两个步骤,直到没有任何一对数据可以原创 2021-03-30 10:43:07 · 155 阅读 · 0 评论 -
二分查找详解
二分查找1.什么是二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。2.二分查找的条件是一个有序数列必须是按照关键字大小进行排序3.二分查找的实现原理假设我们比较的有序数列有三个数,我们比较一个元素的值和数组中间位置的元素的值进行比较,如果比中间的元素大,则在有序数组的后半部分进行查找;如果中间位置的元素的值小,则跟有序数组的前半部分进行比较;如果相等,则找到了比较元素的位置原创 2021-01-03 20:44:41 · 3817 阅读 · 1 评论