算法
pediyasm
有点懒!
展开
-
高级排序
希尔排序:插入排序的缺点是复制的次数太多,如果数据开始时是相对有序的,那么插入排序的效率就能提高很多。希尔排序基于插入排序,通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项能大跨度地移动。当这些数据项排过一趟序之后,希尔排序算法减小数据项的间隔再进行排序,依此进行下去。进行这些排序时数据项之间的间隔被称为增量,并且习惯上用字母h表示。常用的话值序列用公式h=h转载 2010-03-04 11:29:00 · 478 阅读 · 0 评论 -
链表
单链表:LinkList类,只有一个数据项,即对链表中第一个链节点的引用,叫做first。他是唯一的链表需要维护的永久信息,用以定位所有其他的链结点。从first出发,沿着链表通过每个链结点(Link类的实例)的next字段,就可以找到其他的链结点。在链表头插入一个新的结点public void insertFirst(int id,double dd) {转载 2010-03-04 11:25:00 · 1221 阅读 · 0 评论 -
栈和队列
栈和队列不适合作为数据的记录工具,它们更多地是作为程序员的工具来运用。主要作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比数组、链表等数据库类型的结构要短的多。在程序操作执行期间他们才被创建,通常用它们去执行某项特殊的任务;当完成任务后,它们就被销毁。 下面的StackX类,实现一个栈的功能:class StackX{ pri转载 2010-03-04 11:20:00 · 590 阅读 · 0 评论 -
三种简单排序算法及其对比
三种简单排序算法及其对比代码:class ArraySort{ private long[] a; private int nElems; public ArraySort(int max) { a = new long[max]; nElems=0; } public转载 2010-03-04 11:15:00 · 632 阅读 · 0 评论 -
递归
用三角数字问题说明递归Int triangle(int n){ if(n ==1) //基值条件 return 1; else return(n + triangle(n-1)); //递归调用自身}说明:导致递归的方法返回而没有再一次进行递归调用,这转载 2010-03-04 11:26:00 · 814 阅读 · 0 评论 -
java 线性排序 counting sort
package com.sort;/** * for i <- 1 to k * do C[i] = 0 * for j <- 1 to n * do C[A[j]] <- C[A[j]] + 1 * for i <- 2 to k * do C[i] <- C[i] + C[i-1] * for j <-n downto 1 *原创 2013-03-13 12:24:24 · 715 阅读 · 0 评论 -
java 快速排序
package com.algorithms;/** * * pseudocode * * patition(A, p, q) * x <- A[p] * i <- p; * for j <- p + 1 to q * do if A[j] <= x * then i <- i + 1 *原创 2013-03-12 23:50:44 · 622 阅读 · 0 评论