随笔分类 -  算法

摘要:(1)冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有 阅读全文
posted @ 2022-01-20 16:13 YanSss 阅读(60) 评论(0) 推荐(0) 编辑
摘要:来源于leetcode一道中等难度的题,匹配括号。 回溯法-深度优先搜索 回溯法思路的简单描述是:把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。 回溯法按深度优先策略搜索问题的解空间树。首先从根节点出发搜索解空间树,当算法搜索 阅读全文
posted @ 2021-12-15 15:44 YanSss 阅读(397) 评论(1) 推荐(0) 编辑
摘要:6、归并排序(Merge Sort) 归并排序是建立在归并操作 上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。 阅读全文
posted @ 2021-12-10 15:10 YanSss 阅读(62) 评论(0) 推荐(0) 编辑
摘要:0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序 阅读全文
posted @ 2021-12-10 14:55 YanSss 阅读(58) 评论(0) 推荐(0) 编辑
摘要:来源于leetcode的一道简单难度的算法题“快乐数” 算法要求:给定一个任意数字,数字的每一位都可拆解为多个一位数(19 -> 1,9 234 -> 2,3,4),所有的一位数做平方和之后产生新的数字(19 -> 1,9. sum = 1*1 + 9*9 ,sum为新的值)之后,重复上述拆解及平方 阅读全文
posted @ 2021-12-07 15:10 YanSss 阅读(71) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示