摘要:
归并排序介绍 归并排序(MERGE-SORT)是利用归并的思想实现的排序算法,该算法采用经典的分治策略(分治策略将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案“修补”在一起,即分而治之) 分治排序示意图1 分治排序示意图2-合并相邻有序子序列 在治阶段,我们需要将2个有序的子 阅读全文
摘要:
快速排序介绍 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 快速排序示意图 代码 阅读全文
摘要:
插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种: 添加全局方法或者 property。如:vue-custom-element 添加全局资源:指令/过滤器/过渡等。如vue-touch 通过全局混入来添加一些组件选项。如 vue-router 添加 Vue 实例 阅读全文
摘要:
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。 基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增 阅读全文
摘要:
基本思想 插入排序的基本思想是:将n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 插入排序思路图 代码实现 pa 阅读全文
摘要:
基本思想 选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 代码实现 package sort; import java.util.A 阅读全文
摘要:
基本概念 冒泡排序的基本思想是:通过对待排序序列从前到后(从下标较小的元素开始),依次比较相邻元素的值,如果发现逆序(a[j]>a[j+1])则交换,使得值较大的元素逐渐从前向后移动,就像气泡一样往上冒。 简单举例 原始数组 arr[]={20,3,9,-1,10} 第一次:[3, 9, -1, 1 阅读全文
摘要:
算法的时间复杂度 事前估算方法:通过分析某个算法的时间复杂度来判断那个算法更优。 事后统计方法:这种方法可行,但不是一个好的方法。该方法有两个缺陷:一是要想对设计的算法的运行性能进行评测,必须先依据算法编制相应的程序并实际运行;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,有时容易掩盖算法 阅读全文
摘要:
八皇后问题介绍 八皇后问题是国际西洋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能相互攻击,即:任意两个皇后不能处于同一行、同一列或者同一斜线上,问有多少种摆法(共92种)。 八皇后问题算法思路分析 1.第一个皇后先放在第一行第一列 2.第二个皇后放在第二行第一列, 阅读全文
摘要:
递归的概念 递归简单的说就是方法自己调用自己,每次调用时传入不同的变量,递归有助程序员解决复杂的问题并使代码更加简洁。 递归的原则 1.执行一个方法时,就创建一个新的受保护的独立空间(栈空间) 2.方法的局部变量是独立的,不会相互影响 3.如果方法中使用的是引用类型变量(如数组),就会共享该引用类型 阅读全文