随笔分类 -  算法结构

算法学习(11)--高级排序之希尔排序
摘要:package com.tw.ds.highsort;/** * * <p> * 算法学习---高级排序 * 希尔排序算法 * 基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。 * 所有距离为dl的倍数的记录放在同一个组中。 * 先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序, * 直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。 * 该方法实质上是一种分组插入方法。 * </p> * @author tangw 2010- 阅读全文

posted @ 2010-12-26 15:30 大米文子 阅读(145) 评论(0) 推荐(0)

算法学习(10)-递归 之归并排序
摘要:package com.tw.dst.recursive;/** * <p> * 算法学习 ----递归 * 概念介绍: * 归并排序:归并算法的中心是归并两个已经有序的数组,并且递归调用归并操作。 * 归并排序优点和缺点:比简单排序在速度上快很多;归并排序会占用双倍的存储空间。 * 归并排序的效率:归并排序的时间复杂度是 O(N*LogN);简单排序的复杂度是O(N2)。</p> * @author tangw 2010-12-13 */ public class MergeRecursion3 { private long[] theArray; ... 阅读全文

posted @ 2010-12-26 15:22 大米文子 阅读(205) 评论(0) 推荐(0)

算法学习(9)-链表之链表栈
摘要:package com.tw.dst.link;/** * <p>链表学习(三):链表栈</p> * @author tangw 2010-12-08 * */public class LinkStack { private LinkList linkList; public LinkStack(){ linkList = new LinkList(); } //进栈 public void push(int id,double dd){ linkList.insertFirst(id, dd); } //出栈 public Link pop(){ return lin 阅读全文

posted @ 2010-12-26 14:51 大米文子 阅读(129) 评论(0) 推荐(0)

算法学习(8)-链表之双端链表
摘要:package com.tw.dst.link;/** * <p>链表学习(二):双端链表</p> * @author tangw 2010-12-07 * */public class FirstLastLink { private Link first; //第一个链表引用 private Link last; //最后一个链表引用 //判断是否为空 public boolean isEmpty(){ return (first==null); } //在表前插入一个链结点 public void insertFirst(int id,double dd){ Lin 阅读全文

posted @ 2010-12-26 14:49 大米文子 阅读(152) 评论(0) 推荐(0)

算法学习(六)--链表之单链表
摘要:package com.tw.dst.link;/** * <p>链表类</p> * @author tangw * */public class Link { public int iData; public double dData; public Link next; public Link(int idata,double ddata){ this.iData = idata; this.dData = ddata; } public void displayLink(){ System.out.println(" idata="+iData 阅读全文

posted @ 2010-12-07 17:04 大米文子 阅读(152) 评论(0) 推荐(0)

算法学习(六)--优先队列
摘要:package com.tw.dst.sq;/** * <p>优先队列 * 优先队列允许访问最小(或者有时是最大)的数据项 优先队列的重要操作是有序地插入新数据项和移除关键字最小的数据项 * </p> * @author tangw 2010-11-26 * */public class PriorityQueue { private int nItems; //队列中元素的个数 private long pqArr[];//队列数组 private int maxSize;//队列中最大元素个数 //构造函数 public Prior... 阅读全文

posted @ 2010-12-06 09:32 大米文子 阅读(157) 评论(0) 推荐(0)

算法学习(五)---队列
摘要:package com.tw.dst.sq;/** * <p>队列是一种先进先出(FIFO)的线性数据结构,常用操作有插入(insert)和删除(remove)</p> * @author tangw 2010-11-27 */public class Queue { // 队列数组 private long queueArr[]; //队列的前端下标 private int front; //队列的尾端下标 private int rear; //队列的大小 private int maxSize; ... 阅读全文

posted @ 2010-11-29 14:21 大米文子 阅读(150) 评论(0) 推荐(0)

算法学习(四)--栈
摘要:package com.tw.dst.sq;/** * * <p>栈算法:栈是一种后进先出的方式</p> * @author tangw 2010-11-26 */public class Stack { //栈数组 long stackArr[]; //栈的大小 int maxSize; //栈的顶部 int top; //初始化一个大小为size的栈 public Stack(int size){ maxSize = size; stackArr = new long... 阅读全文

posted @ 2010-11-27 15:19 大米文子 阅读(177) 评论(0) 推荐(0)

算法学习(三)--插入排序
摘要:package com.tw.ds.sort;/** * * <p>插入排序算法 * 插入排序算法步骤 *1.从有序数列和无序数列{a2,a3,…,an}开始进行排序; *2.处理第i个元素时(i=2,3,…,n) , 数列{a1,a2,…,ai-1}是已有序的,而数列{ai,ai+1,…,an}是无序的。 *用ai与ai-1,a i-2,…,a1进行比较,找出合适的位置将ai插入; *3.重复第二步,共进行n-1次插入处理,数列全部有序。 * * </p> * @author tangw 2010-11-26 * */public class InsertSortMa 阅读全文

posted @ 2010-11-26 11:03 大米文子 阅读(190) 评论(0) 推荐(0)

java排序算法学习(一)--选择排序
摘要:package com.tw.ds.sort;/** * <p>选择排序法 * 选择排序算法的一般策略:搜索整个值列,以找到最小值。 * 将该值与值列中第一个位置上的值进行交换。搜索剩下的值列(第一个除外),以找到其中的最小值, * 然后将其与值列中第二个位置上的值进行交换。对值列中的每个位置重复该过程。 * 在算法结束时,就完成了对值列的排序。 * </p> * @author tangw 2010-11-22 * */public class SelectSortMain { /** * 主方法 * @param args */ public static void 阅读全文

posted @ 2010-11-23 15:27 大米文子 阅读(198) 评论(0) 推荐(0)

java排序算法学习(一)--冒泡排序
摘要:package com.tw.ds.sort;/** *<p>java数据结构之:冒泡排序方法 *冒泡排序算法的一般性策略:搜索整个值列,比较相邻元素,如果两者的相对次序不对,则交换它们, * 其结果是最大值“想水泡一样”移动到值列的最后一个位置上, * 这也是它在最终完成排序的值列中合适的位置。然后再次搜索值列, * 将第二大的值移动至倒数第二个位置上,重复该过程,直至将所有元素移动到正确的位置上. * http://lavasoft.blog.51cto.com/ * http://www.blogjava.net/hitlang/archive/2007/09/... 阅读全文

posted @ 2010-11-23 15:25 大米文子 阅读(194) 评论(0) 推荐(0)

导航