输入:一个待排序的数组A以及排序范围[left, right]。 输出:排序后的数组。 算法思想 快速排序算法属于分治算法:将数组的最后一个元素与其他元素进行一系列的比较与交换(划分),插入到这个元素在排好序后所处的位置。此时,该元素的左边的元素都比该元素小,右边的元素都比该元素大,则该问题被划分成 ...
分类:
其他好文 时间:
2019-10-02 18:45:26
阅读次数:
59
1 Dijkstra算法 1.1 算法基本信息 + 解决问题/提出背景 + 单源最短路径(在带权有向图中,求从某顶点到其余各顶点的最短路径) + 算法思想 + 贪心算法 + 按路径长度递增的次序,依次产生最短路径的算法 + 【适用范围】Dijkstra算法仅适用于【权重为正】的图模型中 + 时间复杂 ...
分类:
编程语言 时间:
2019-09-30 18:21:19
阅读次数:
129
1. 分块查找 (1)说明分块查找又称索引顺序查找,它是顺序查找的一种改进方法。 (2)算法思想:将n个数据元素"按块有序"划分为m块(m ≤ n)。每一块中的结点不必有序,但块与块之间必须"按块有序";即第1块中任一元素的关键字都必须小于第2块中任一元素的关键字;而第2块中任一元素又都必须小于第3 ...
分类:
编程语言 时间:
2019-09-28 17:50:33
阅读次数:
111
K-means聚类算法 1、算法思想 首先,我们可以随机选取K个对象作为初始的聚类中心,然后计算每个对象与每一个种子聚类中心的距离,然后分别把这些对象分配给距离对象最近的一个聚类中心,只要对象被分配以后,被分配的对象就和聚类中心组成一个新的聚类,分配后就不能改变了,然后在根据每个聚类的聚类中心和对象 ...
分类:
编程语言 时间:
2019-09-28 14:41:31
阅读次数:
120
一 哈夫曼树 1.1 基本概念 + 算法思想 + "贪心算法" (以局部最优,谋求全局最优) + 示例 + 【树论:最优(二叉)数=带权路径最短的树】 + "哈夫曼(树)编码" + 【图论: "最小(代价)生成树" 】 + "普里姆算法(Prim)(加点法,归并点)" + "克鲁斯卡尔(Kruska ...
分类:
编程语言 时间:
2019-09-26 11:41:43
阅读次数:
151
1.GET 和 POST安全性比较与讨论 两者最基本区别 不同观点 二.最小化重绘和回流 重绘:将渲染树的每个节点都转换为屏幕上的实际像素 回流:计算节点的位置和几何信息,那么当页面布局和几何信息发生变化的时候,就需要回流。 比如以下情况: 添加或删除可见的DOM元素 元素的位置发生变化 元素的尺寸 ...
分类:
其他好文 时间:
2019-09-12 23:23:05
阅读次数:
125
选择排序像冒泡排序一样,每趟只放置一个项目到正确的位置。 但是,通常情况下它执行的交换会比较少,因为它会立即将项目移动到数组的正确位置。 1、算法思想:选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。 2、算法过程 示 ...
分类:
编程语言 时间:
2019-09-08 18:13:38
阅读次数:
76
oj算法 动态规划 背包问题 1.动态规划 1.1概念 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法 1.2性质 动态规划一般用来处理最优解的问题。使用动态规划算法思想解决的问题一般具有最优子结构性质和重叠子 ...
分类:
编程语言 时间:
2019-09-01 18:29:50
阅读次数:
88
最大最小距离和层次聚类算法的一个共同特点是某个模式一旦划分到某一类之后,在后续的算法过程中就不再改变了,而简单聚类算法中类心一旦选定后,在后继算法过程中也不再改变了。因此,这些方法效果一般不会太理想。 为解决该问题,可以采用动态聚类法: 使用动态聚类法的要点: 1. 确定模式和聚类的距离测度。当采用 ...
分类:
其他好文 时间:
2019-08-29 23:21:30
阅读次数:
119
一、分治策略 “分而治之”,大问题能够拆成相似的小问题,记住这些小问题需要具有相似性。而后将小问题的每个解合成为大问题的解。所以说大问题如何拆,小问题如何合并才是这个算法最主要的一个思想。实际上很多算法如贪心算法,动态规划等等都是要求把大问题拆成小问题。而分治算法的重要一点就是要适用于能够重新把小问 ...
分类:
编程语言 时间:
2019-08-27 23:22:51
阅读次数:
108