算法分析
格色情调1984
信技术
展开
-
算法分析(二)归并排序原理及java实现
一、归并排序概念(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有原创 2016-10-15 15:17:21 · 854 阅读 · 0 评论 -
算法分析(总结)排序算法性能及比较总结
一、按平均时间将排序分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排序 £是介于0和1之间的常数,即0(4)线性阶(O(n))排序 如桶、箱和基数排序。二、各种排序方法比较原创 2016-09-29 20:07:28 · 826 阅读 · 0 评论 -
算法分析(一)堆排序原理及java实现
一、堆排序思想以下以大根堆为例:1、先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区2、 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1].keys≤R[n].key3、由于交换后新的根R[1]可能违反堆性质,故应将当前无序区R[1..n-1]调整原创 2016-09-29 19:29:27 · 751 阅读 · 0 评论 -
程序员高手必会的十大编程算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法中的指令描述的是原创 2016-09-25 18:44:10 · 20345 阅读 · 1 评论 -
冒泡排序与快速排序比较
Java冒泡排序冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他原创 2016-09-06 15:43:38 · 4097 阅读 · 0 评论 -
九大基础排序总结与对比
请尊重个人劳动成果,转载注明出处,谢谢! http://blog.csdn.net/amazing7/article/details/51603682一、对比分析图均按从小到大排列k代表数值中的”数位”个数n代表数据规模m代表数据的最大值减最小值 稳定性:稳定排序算法会让原本有相等键转载 2016-09-30 09:05:28 · 950 阅读 · 0 评论 -
一致性哈希与普通哈希对比
普通哈希算法 假如有cache主机5台分别为cacheA、cacheB、cacheC、cacheD、cacheE 当程序进行hash时,首先每个节点要根据自己的唯一参数哈希出一个值来(如根据ip进行哈希) 主机哈希完成后形成的哈希值如下 cacheA 0 cacheB 1 cacheC原创 2017-03-07 10:54:04 · 2242 阅读 · 0 评论