插入排序 介绍插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 思想插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的 2019-07-24 数据结构 #java #算法 #排序
ubuntu安装redis 下载123wget http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gzcd redis-5.0.5 编译1make 如果Command ‘make’ not found, but can be installed with:有这个错误提示,安装下列依赖 12sudo apt-get inst 2019-07-08 linux #ubuntu #redis
选择排序 基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。 选择排序思想:选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]arr[n-1]中选取最小值 2019-07-07 数据结构 #java #算法 #排序
冒泡排序 排序排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 排序的分类 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。 常见的排序算法分类 冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元 2019-07-06 算法 #java #算法 #排序
时间复杂度与空间复杂度 算法的时间复杂度度量一个程序(算法)执行时间的两种方法 事后统计的方法这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素, 这种方式,要在同一台计算机的相同状态下运行,才能比较那个算法速度更快。 事前估算的方法通过分析某个算法的时间复杂度来判断哪个算法更优. 时间频度时间频度:一个算法花费的时间 2019-06-20 数据结构 #java #算法
递归 概念递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 递归需要遵守的重要规则 执行一个方法时,就创建一个新的受保护的独立空间(栈空间) 方法的局部变量是独立的,不会相互影响, 比如n变量 如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据. 递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflow 2019-06-18 数据结构 #java #数据结构
栈(三) 前缀表达式(波兰表达式) 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前 举例说明: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6 前缀表达式的计算机求值从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 和 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果 2019-06-17 数据结构 #java #数据结构
栈(二) 使用栈完成计算 一个表达式的结果对计算机而言,它接收到的就是一个字符串 使用栈完成表达式的计算 思路 通过一个 index 值(索引),来遍历我们的表达式 如果我们发现是一个数字, 就直接入数栈 如果发现扫描到是一个符号, 就分如下情况 如果发现当前的符号栈为 空,就直接入栈 如果符号栈有操作符,就进行比较,如果当前的操作符的优先级小于或者等于栈中的操作符, 就需要从数栈中pop出两个数, 2019-06-10 数据结构 #java #数据结构
栈(一) 栈的介绍 栈的英文为(stack) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的 2019-06-09 数据结构 #java #数据结构
链表(二) 双向链表单双链表的一些比较 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。 单向链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到temp,temp是待删除节点的前一个节点. 分析思路和代码实现双向链表的遍历,添加,修改,删除的操作思路,代码实现 遍历方式和单链表一样,只是可以向前,也可以向后查找 添加 (默认添加到双向链 2019-06-05 数据结构 #java #数据结构