算法一:快速排序算法 算法二:堆排序算法 算法三:归并排序 算法四:二分查找算法 算法五:BFPRT(线性查找算法) 算法六:DFS(深度优先搜索) 算法七:BFS(广度优先搜索) 算法八:Dijkstra算法 算法九:动态规划算法 算法十:朴素贝叶斯分类算法 算法一:快速排序算法 快速排序是由东尼 ...
分类:
编程语言 时间:
2018-11-22 00:16:30
阅读次数:
171
UVA - 10245 思路: 平面分治 inplace_merge()可以用来归并排序 代码: ...
分类:
其他好文 时间:
2018-11-20 15:06:09
阅读次数:
124
一、如何选择合适的排序算法?1.排序算法一览表 时间复杂度 是稳定排序? 是原地排序?冒泡排序 O(n^2) 是 是插入排序 O(n^2) 是 是选择排序 O(n^2) 否 是快速排序 O(nlogn) 否 是 归并排序 O(nlogn) 是 否桶排序 O(n) 是 否计数排序 O(n+k),k是数 ...
分类:
编程语言 时间:
2018-11-18 11:37:06
阅读次数:
365
桶排序: 1. 原理: 根据数据范围,分成若干个数据段的桶,通过遍历讲数据放到对应的桶中。每个桶里都进行快排或归并。2. 时间复杂度: 最好o(n), 最坏o(nlogn), 平均o(n),一般桶分的越细越多复杂度就会最好。3. 内存消耗: o(n)4. 稳定性: 取决于每个桶的排序方式,快排就不稳 ...
分类:
编程语言 时间:
2018-11-17 11:01:56
阅读次数:
142
目录 (1)数据结构与算法概念解析 (2)数据结构之数组 (3)数据结构之栈 (4)数据结构之队列 (5)数据结构之链表 (6)数据结构之二叉树 (7)数据结构之霍夫曼树 (8)数据结构之红黑树(一)——基础分析 (9)数据结构之红黑树(二)——插入操作 (10)数据结构之红黑树(三)——删除操作 ...
分类:
编程语言 时间:
2018-11-15 21:19:09
阅读次数:
166
归并排序可以采用递归方法(见:归并排序),但递归方法会消耗深度位O(longn)的栈空间,使用归并排序时,应该尽量使用非递归方法。本文实现了java版的非递归归并排序。 更多:数据结构与算法合集 思路分析 递归排序的核心是merge(int[] arr, int start, int mid, in ...
分类:
编程语言 时间:
2018-11-15 21:09:31
阅读次数:
150
MapReduce MapReduce程序从磁盘读取输入数据,把数据分解成键/值对,经过混洗、排序、归并等数据处理后产生输出,并将最终结果保存在磁盘。Map阶段和Reduce阶段的结果均要写磁盘,这大大降低了系统性能。也是由于这个原因,MapReduce大都被用于执行批处理任务。Map阶段和Redu ...
分类:
其他好文 时间:
2018-11-15 10:20:59
阅读次数:
151
一、YAML简介二、Ansible组件三、主机清单Invetory四、PlayBook介绍 一、YAML简介http://www.yaml.orgYAML:可以使用简单清单,散列表,标题等数据结构。YAML的语法和其他高阶语言类似,并且可以简单表达清单、散列表、标量等数据结构。其结构(Structu ...
分类:
其他好文 时间:
2018-11-14 12:34:33
阅读次数:
224
归并排序 即将两个数组归并成一个更大的有序数组,可以先递归将它分成两半排序,再将结果归并起来 ① 原地归并 实现归并的一种直截了当的方法是将俩个不同的有序数组归并到第3个数组中,将一个大数组排序时,我们需要进行很多次归并,因此每次归并都创建一个新数组来储存结果会带来问题,使用原地归并的方法,先将前半 ...
分类:
编程语言 时间:
2018-11-13 02:31:43
阅读次数:
129
合并排序 合并排序也叫归并排序,它的主要思想是分治法,把待排序序列分为若干有序子序列,然后将两个或两个以上的有序子序列进行合并,得到一个新的完整的有序序列。所以首先得先对子序列进行排序,得到有序子序列,然后再使序列段之间有序。 排序要点 既然是分治法,那么就涉及到分和治。分,即递归地将序列分成小序列 ...
分类:
编程语言 时间:
2018-11-12 14:46:44
阅读次数:
164