algorithm
文章平均质量分 88
小源er
这个作者很懒,什么都没留下…
展开
-
设计模式之类间关系与设计原则
设计模式是软件开发人员在软件开发过程中面临的不断重复的问题的解决方案,是解决特定问题的一系列套路,具有一定的普遍性。设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。使用设计模式是为了复用代码、让代码更容易被他人理解、保证代码可靠性。1. 根据目的划分可分为创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)3 种。创建型模式:用于描述原创 2022-06-13 16:39:01 · 502 阅读 · 0 评论 -
线索二叉树
线索二叉树遍历二叉树是以一定的规则将二叉树排列成一个线性序列,是将一个非线性结构进行线性化的操作,使每个元素只有一个直接前驱和直接后继. 对于一个二叉树,每个节点的只能知道其后继信息不知道其前驱的信息,要想知道就需要遍历,能不能不遍历就知道前驱的信息呢?当然可以: 1. 一个简单的方法即直接在每个节点上加上前驱和后继的信息即可,但是会使得结构存储密度降低. 2. 第二种方法就是由于n个结...原创 2018-03-29 20:15:25 · 234 阅读 · 0 评论 -
计数排序,桶排序,基数排序,
计数排序->桶排序->基数排序,三者的排序思想是相通的,是逐渐复杂,使用性更广的.(个人理解,欢迎指正,wiki上说基数排序是桶排序的变形,两者的方法相似,都是分配和收集.百度百科说基数排序又叫bucket sort,基数在这里个人理解就是基座,如果当前数的要分配的那一位与基座一致,就放进对应基座的桶内)计数排序计数排序是一种根据小整数键对一组对象进行排序的算法,使用键值作为数组中的索...原创 2018-04-14 20:32:35 · 2439 阅读 · 0 评论 -
交换排序(冒泡排序,快速排序)
交换排序冒泡排序冒泡排序算法:顾名思义,就是将最重的(最大元素)浮动到最下面,最轻的(最小元素)浮动到最上面. 算法过程: 1.循环数组长度length-1次,下标为i. 因为每次循环后就会出现一个最大(升序)或最小(降序),只需要比较n-1就行 1.1 在前 length-i个元素中循环因为已经有i个已经有序 1.1.2 比较当前元素与后一个元素的大小,...原创 2018-04-11 22:46:47 · 568 阅读 · 0 评论 -
插入排序算法总结
注:我排序所用的数组list的第一个即list[0],只用于存放临时交换数据,不参与数组元素的存储所以数据是从list[1]开始存储的 常见排序算法总结1.插入排序直接插入排序在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使这n个数也是排好顺序的。如此反复循环,直到全部排好顺序 /* Input: Unsort list O...原创 2018-04-05 23:25:15 · 351 阅读 · 0 评论 -
选择排序
选择排序简单选择排序算法思想:第一趟从n个元素的数据序列中选出关键字最小/大的元素并放在最前/后位置,下一趟从n-1个元素中选出最小/大的元素并放在最前/后的下一个位置。以此类推,经过n-1趟完成排序。 可能有人会把选择排序与冒泡排序弄混,百度百科解释 "择排序法 是对 定位比较交换法(也就是冒泡排序法) 的一种改进。", 其实二者最大的差别就是比较的次数,冒泡排序法是如果当前元素...原创 2018-04-25 21:42:20 · 451 阅读 · 0 评论 -
时间复杂度计算
#时间复杂度定义:算法中基本操作的执行次数作为时间复杂度的度量步骤:1.找到算法中的基本操作2.计算基本操作重复执行的次数m,即求一个执行次数为 n(n<=输入规模)的函数f(n)= m3.取出f(n)中随n增大而增大最快的项(指数最大的项),然后将其系数置为1,T(n) = O(f(n))######这里解释一下为什么是计算函数f(n),和将系数置为1算法的渐近分析不是从时...原创 2018-07-05 23:42:41 · 699 阅读 · 0 评论 -
kmp算法白话解析
kmp原创 2018-11-17 16:12:49 · 7385 阅读 · 21 评论