上一页 1 2 3 4 5 6 ··· 12 下一页
摘要: 一、算法思想 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用,指的是将两个已经排序的序列合并成一个序列的操作。其归并思想如下:1)申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列;2)设定两个指针,最初位置分别为两个已经排序序列的起始位置;3)比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置;4)重复步骤3直到某一指针达到序列尾;5)将另一序列剩下的所有元素直接复制到合并序列尾; 在使用归并排序算法的时候,算法如下:1)将序列切分,直至切分到序列是有序的(这里通过将序列切分成单个元素达到目的);2)... 阅读全文
posted @ 2014-04-07 16:55 大脚印 阅读(1212) 评论(0) 推荐(0) 编辑
摘要: 一、算法思想 快速排序,顾名思义,效率比较于其他算法,效率比较高。《算法导论》也专门对其进行讲解。其算法设计使用分治思想,如下:1)从数组A[p...r]中选择一个元素,将数组划分成两个子数组:A[p...q-1]和A[q+1...r],使得A[p...q-1]中的元素全部小于等于A(q),使得A[q+1...r]中的元素全部大于A(q);2)通过递归调用快速排序,分别对A[p...q-1]和A[q+1...r]排序;3)因为两个子数组是就地排序,因此它们的合并不需要操作,整个数组A[p...r]已经排序;二、算法示意图 图中所示只是代表一次分的过程,其中红色的4代表选中的用于分割的数组元.. 阅读全文
posted @ 2014-04-07 16:43 大脚印 阅读(1300) 评论(0) 推荐(0) 编辑
摘要: 一、算法思想 选择排序是一种简单直观的排序算法。它的工作原理如下:1)将序列分成两部分,前半部分是已经排序的序列,后半部分是未排序的序列;2)在未排序序列中找到最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。二、算法示意图 图中阴影部分是未排序的序列,黄色部分是排序好的序列。第一行是待排序的初始序列,最后一行是排好序的序列。 从第一行中选择出最小的元素1,将其和未排序序列的第一个元素交换,从而形成第二行。第二行从阴影部分找到最小的元素2,将2和阴影部分的第一个元素8交换,形成第三行。其实这个过程和冒泡排序非常相似,只是如何将下一个元素移动到排序序列的最末端的方... 阅读全文
posted @ 2014-04-07 14:18 大脚印 阅读(1430) 评论(0) 推荐(0) 编辑
摘要: 一、算法思想希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:1)插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率;2)插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位;我们将数组中两个元素之间的距离称为Gap,相邻元素之间的Gap自然是1,很明显的,插入排序的算法在调节元素的时候,Gap是1,这就造成了上面讲的低效的原因2)。因此希尔排序的思想如下:1)假设序列的元素个数是n,选取一个初始Gap的d(d= 1; gap = gap / 2) 7 ... 阅读全文
posted @ 2014-04-07 13:27 大脚印 阅读(1582) 评论(0) 推荐(0) 编辑
摘要: 一、算法思想一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:1)从第一个元素开始,该元素可以认为已经被排序2)取出下一个元素,在已经排序的元素序列中从后向前扫描3)如果该元素(已排序)大于新元素,将该元素移到下一位置4)重复步骤3,直到找到已排序的元素小于或者等于新元素的位置5)将新元素插入到该位置后6)重复步骤2~5如果比较操作的代价比交换操作大的话,可以采用二分查找法来减少比较操作的数目。该算法可以认为是插入排序的一个变种,称为二分查找排序。二、算法示意图如图所示,阴影部分表示待排序的部分,黄色部分则代表已经排序好的序列。排序过程就是将阴影部分的第一个元素从后往前插 阅读全文
posted @ 2014-04-07 10:43 大脚印 阅读(1288) 评论(0) 推荐(0) 编辑
摘要: 一、算法思想 冒泡排序是排序算法中比较有意思的一种排序方法,也很简单。其算法思想如下:1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3)针对所有的元素重复以上的步骤,除了最后一个。4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。二、算法示意图 这幅图形象的展示了冒泡的过程,最左边一列,从下往上显示了等待排序的数列,最后一列则显示了冒泡排序的最终结果。每一列阴影的部分代表等待排序的数列,黄色部分表示排序完成的部分,冒泡过程中不需要涉及黄色部分,我们解释一.. 阅读全文
posted @ 2014-04-06 21:21 大脚印 阅读(1163) 评论(0) 推荐(0) 编辑
摘要: 排序算法 稳定性 意义 重要性 阅读全文
posted @ 2014-04-03 01:33 大脚印 阅读(13868) 评论(3) 推荐(1) 编辑
摘要: 在Java中如何将字符串转化为整数 阅读全文
posted @ 2014-04-01 14:29 大脚印 阅读(5661) 评论(0) 推荐(0) 编辑
摘要: ZZ:struts2学习:配置篇之namespace在struts1中是没有命名空间这个概念的,通过命名空间我们可以将所有的action配置划分为一个个逻辑单元,每个单元都有它自己的标识前缀。命名控件可以避免action命名的冲突。每个命名空间下有可以有一个叫做”help”的action,并且有着各自不同的实现,当然在同一个命名空间下最好是不要出现两个名字一样的action。当命名空间的前缀出现在浏览器的URI中时,标签会意识到命名空间,因此我们不必将命名空间嵌套在表单和链接中。默认的命名空间是空字符串””,也就是不设置namespace属性时候的命名空间。我们在匹配一个action的时候,先 阅读全文
posted @ 2014-01-03 11:42 大脚印 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Android 4.0.3, Social Stream 阅读全文
posted @ 2013-12-25 16:12 大脚印 阅读(1544) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 12 下一页