算法-排序
GUITK
这个作者很懒,什么都没留下…
展开
-
java 快速排序
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。最坏情况的时间复杂度为O(n2),最好情况时间复杂度为O(nlog2n)。 另外 java没指针概念 可以认为是句柄 假设要排序的数转载 2011-11-22 22:19:59 · 740 阅读 · 0 评论 -
归并排序(MergeSort)
归并排序中的“归并”的意思是将两个或者两个以上的有序表组合成一个新的有序表。他的实现无论是顺序存储结构还是链表结构,都可以在O(m+n)的时间级上实现。 复杂度:时间复杂度:O(nlogn)空间复杂度:O(n)用途:1、排序(速度仅次于快速排序,但较稳定)2、求逆序对数下面开始实现单数组的归并排序算法例如:49 38 65 97 7转载 2011-11-22 23:11:15 · 1335 阅读 · 1 评论 -
插入排序
插入排序法 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分里的位置Jav原创 2012-05-09 13:37:06 · 743 阅读 · 0 评论 -
稳定排序和不稳定排序
这几天笔试了好几 次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前 已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人 准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前转载 2012-05-09 15:26:11 · 748 阅读 · 0 评论 -
希尔排序
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。public class ShellSort { /** * @param args */ public static void main(String[] args) { int原创 2012-05-09 15:40:06 · 609 阅读 · 0 评论 -
冒泡排序
冒泡排序原理:基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点: 1.“编程复杂度”很低,很容易写出代码; 2.具有稳原创 2012-05-10 13:29:10 · 655 阅读 · 0 评论 -
Jsp: Invalid standard action
错误日志:org.apache.jasper.JasperException: /index.jsp(6,6) Invalid standard action org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) org.apache.jasper.compiler.原创 2012-11-13 13:48:07 · 8392 阅读 · 1 评论