码迷,mamicode.com
首页 > 编程语言
经典排序算法 - 鸡尾酒排序Cocktail sort
经典排序算法 - 鸡尾酒排序Cocktail sort 鸡尾酒排序基于冒泡排序,双向循环 还是看例子吧,给定待排数组[2 3 4 5 1] 第一趟过去时的每一步 第一步迭代,2 [2 3 4 5 1]   第二步迭代,3 [2 3 4 5 1]   第三步迭代,4 [2 3 4 5 1]   第四步迭代,5 > 1交换 [2 3 4 1 5]   第一趟回来时...
分类:编程语言   时间:2014-12-16 13:34:46    阅读次数:205
经典排序算法 - 希尔排序Shell sort
经典排序算法 - 希尔排序Shell sort 希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分, 第一部分,希尔排序介绍 第二部分,如何选取关键字,选取关键字是希尔排序的关键 第一块希尔排序介绍 准备待排数组[6 2 4 1 5 9] 首先需要选取关键字,例如关键是3和1(第一步分成三组,第二步分成一组),那么待排数组分成了以下三个虚拟组: [6 1]一组 [...
分类:编程语言   时间:2014-12-16 13:34:14    阅读次数:357
经典排序算法 - 堆排序Heap sort
经典排序算法 - 堆排序Heap sort 堆排序有点小复杂,分成三块 第一块,什么是堆,什么是最大堆 第二块,怎么将堆调整为最大堆,这部分是重点 第三块,堆排序介绍 第一块,什么是堆,什么是最大堆 什么是堆 这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。 堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可...
分类:编程语言   时间:2014-12-16 13:35:14    阅读次数:219
经典排序算法 - 地精排序Gnome Sort
经典排序算法 - 地精排序Gnome Sort 号称最简单的排序算法,只有一层循环,默认情况下前进冒泡,一旦遇到冒泡的情况发生就往回冒,直到把这个数字放好为止 直接看它排序的过程,待排数组[6 2 4 1 5 9] 先设计一个标识i=0然后从头开始判断,什么时候(i , 所以,如何控制i的值是这个算法的关键 例如待排数组: [6 2 4 1 5 9] [0...
分类:编程语言   时间:2014-12-16 13:35:43    阅读次数:204
经典排序算法 - 奇偶排序Odd-even sort
经典排序算法 - 奇偶排序Odd-even sort 又一个比较性质的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组[6 2 4 1 5 9] 第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比,4和1比,5和9比 [6 2 4 1 5 9] 交换后变成 [2 6 1 4 5 9]   第二次比较偶数列,即6和1比,5和...
分类:编程语言   时间:2014-12-16 13:33:32    阅读次数:274
经典排序算法 - 梳排序Comb sort
经典排序算法 - 梳排序Comb sort 梳排序还是基于冒泡排序,与冒泡不同的是,梳排序比较的是固定距离处的数的比较和交换,类似希尔那样 这个固定距离是待排数组长度除以1.3得到近似值,下次则以上次得到的近似值再除以1.3,直到距离小至3时,以1递减 不太好描述,还是看例子吧 假设待数组[8 4 3 7 6 5 2 1] 待排数组长度为8,而8÷1.3=6,则比较8和2,4和1,并做交...
分类:编程语言   时间:2014-12-16 13:33:42    阅读次数:236
经典排序算法 - 耐心排序Patience Sorting
经典排序算法 - 耐心排序Patience Sorting 这个排序的关键在建桶和入桶规则上 建桶规则:如果没有桶,新建一个桶;如果不符合入桶规则那么新建一个桶 入桶规则:只要比桶里最上边的数字小即可入桶,如果有多个桶可入,那么按照从左到右的顺序入桶即可   举个例子,待排数组[6 4 5 1 8 7 2 3] 第一步,取数字6出来,此时一个桶没有,根据建桶规则1新建桶,将把自己放进去...
分类:编程语言   时间:2014-12-16 13:34:11    阅读次数:199
经典排序算法 - 珠排序Bead Sort
经典排序算法 - 珠排序Bead Sort 珠排序非常另类[地精也很另类],看完你就知道了,先介绍思路,再分解过程 这是它的英文论文 http://www.cs.auckland.ac.nz/~jaru003/research/publications/journals/beadsort.pdf 截图即从上边的论文里抓的屏 先了解一个概念,不然不容易理解,一个数字3用3个1来表示 一个数...
分类:编程语言   时间:2014-12-16 13:33:08    阅读次数:205
经典排序算法 - 计数排序Counting sort
经典排序算法 - 计数排序Counting sort 注意与基数排序区分,这是两个不同的排序 计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长 大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶 看下具体的过程,一共需要三个数组,分别是待排数组,票箱数组,和桶数组 var unsorted = new int[] { 6, 2, ...
分类:编程语言   时间:2014-12-16 13:34:36    阅读次数:165
经典排序算法 - Proxmap Sort
经典排序算法 - Proxmap Sort 这个排序是桶排序和基数排序的改进,理解了前两者,这个排序很容易理解 先回忆下桶排序是怎么回事,它与桶的区别在于入桶规则,桶排序里是1入1号桶,2入2号桶 这个排序把数字分区了,然后给出一个所谓的键,例如它规定0-9都入0号桶 10-19都入1号桶,这样桶覆盖的范围将增大10倍,这在某种情况下是很有用的 有了桶排的基础后,再看下边两张图就什么都明...
分类:编程语言   时间:2014-12-16 13:32:39    阅读次数:157
经典排序算法 - Flash Sort
经典排序算法 - Flash Sort FlashSort依然类似桶排,主要改进了对要使用的桶的预测,或者说,减少了无用桶的数量从而节省了空间,例如 待排数字[ 6 2 4 1 5 9 100 ]桶排需要100个桶,而flash sort则由于可以预测桶则只需要7个桶 即待排数组长度个桶,如何预测将要使用的桶有这么一个公式 该排序有前置条件,需要知道待排数组的区间和待排数组的长度, ...
分类:编程语言   时间:2014-12-16 13:32:46    阅读次数:146
经典排序算法 - Strand Sort
经典排序算法 - Strand Sort Strand sort是思路是这样的,它首先需要一个空的数组用来存放最终的输出结果,给它取个名字叫"有序数组" 然后每次遍历待排数组,得到一个"子有序数组",然后将"子有序数组"与"有序数组"合并排序 重复上述操作直到待排数组为空结束   看例子吧 待排数组[ 6 2 4 1 5 9 ] 第一趟遍历得到"子有序数组"[ 6 9],并将其归并排...
分类:编程语言   时间:2014-12-16 13:31:52    阅读次数:256
经典排序算法 - 圈排序Cycle Sort
经典排序算法 - Cycle Sort Cycle sort的思想与计数排序太像了,理解了基数排序再看这个会有很大的帮助, 圈排序与计数排序的区别在于圈排序只给那些需要计数的数字计数,先看完文章吧,看完再回来理解这一句话 所谓的圈的定义,我只能想到用例子来说明,实在不好描述 待排数组[ 6 2 4 1 5 9 ] 排完序后[ 1 2 4 5 6 9 ] 数组索引[ 0 1 2 3 4 ...
分类:编程语言   时间:2014-12-16 13:30:35    阅读次数:219
经典排序算法 - 图书馆排序(Library Sort)
经典排序算法 - 图书馆排序(Library Sort) 思路简介,大概意思是说,排列图书时,如果在每本书之间留一定的空隙,那么在进行插入时就有可能会少移动一些书,说白了就是在插入排序的基础上,给书与书之间留一定的空隙,这个空隙越大,需要移动的书就越少,这是它的思路,用空间换时间 看红线标的那句话知道,这个空隙留多大,你自己定 图书馆排序的关键是分配空间,分配完空间后直接使用插入排序即可 ...
分类:编程语言   时间:2014-12-16 13:32:53    阅读次数:235
深入探索C++对象模型--对象模型
C++对象模型 C++中数据成员有两种:static和nonstatic,以及三种classmember functions:static nonstatic和virtual 现在标准C++对象模型: Nonstatic data Members被置于每一个classobject之内,static data members则被存放在所有的class object之外,static和nonst...
分类:编程语言   时间:2014-12-16 13:30:05    阅读次数:155
dubbo启动报java.lang.ClassNotFoundException: javassist.ClassPath
在dubbo启动的过程中报错误:java.lang.ClassNotFoundException: javassist.ClassPath,调试发现代码:Class clazz = Class.forName(line, true, classLoader)执行加载类com.alibaba.dubbo.common.compiler.support.JavassistCompiler时报:java...
分类:编程语言   时间:2014-12-16 13:29:38    阅读次数:155
spring启动component-scan类扫描加载过程---源码分析
最近因为写书的事情,一段时间没有写博客了,有朋友最近问到了spring加载类的过程,尤其是基于annotation注解的加载过程,有些时候如果由于某些系统部署的问题,加载不到,很是不解!就针对这个问题,我这篇博客说说spring启动过程,用源码来说明,这部分内容也会在书中出现,只是表达方式会稍微有些区别,我将使用spring 3.0的版本来说明(虽然版本有所区别,但是变化并不是特别大),另外,这里...
分类:编程语言   时间:2014-12-16 13:29:17    阅读次数:337
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!