数据结构
文章平均质量分 69
zhima_huhu
这个作者很懒,什么都没留下…
展开
-
用Java泛型实现快速排序
package ch10; public class QuickSort { /** * successfully-快速排序 * 使用了泛型-自然排序 * @param * @param t */ public static void quikSort(T[] t){ recursiveSort(t, 0, t.length-1); } /** * 快原创 2012-10-04 16:34:06 · 1334 阅读 · 0 评论 -
根据二叉树的前序序列和中序序列得到后序序列
一个例子: 前序序列:abdgcefh 中序序列:dgbaechf 求:后序序列 分析: 根据前序序列可知,a肯定是根节点。再在中序序列中找到a,发现a左侧是dgb,右侧是echf,则dgb应该是a的左孩子,echf是a的右孩子。 接着只要递归的判断左右孩子的后序序列就可以了。比如dgb是左孩子的中序序列,则可以根据abdgcefh得到它的前序序列是bdg。右孩子的做法一样。 编程实原创 2012-10-10 15:42:41 · 5811 阅读 · 0 评论 -
基本排序算法小结
根据排序时选择的策略可以分为: 插入排序 直接插入排序、其他插入排序(折半插入排序、2-路插入排序、表插入排序) 交换排序 冒泡排序、快速排序 选择排序 简单选择排序、堆排序 归并排序 基数排序 总结: 1、 时间复杂度为O(n2)的排序都是稳定的,且其空间复杂度为O(1); 2、 先进的排序有:希尔排原创 2012-10-04 22:11:45 · 587 阅读 · 0 评论 -
用Java泛型实现折半插入排序
package ch10; /** * successful-折半插入排序 * @author songjie * */ public class BinaryInsertSort { public static boolean binaryInsertSort(T[] t){ if(t==null || t.length <= 1) return true; for(原创 2012-10-04 21:53:00 · 881 阅读 · 0 评论 -
用Java泛型实现归并排序(递归和非递归算法)
package ch10; public class MergeSort { /** * 二路归并排序的递归算法-入口 * @param * @param t * @return */ public static boolean mergeSortRecursive(T[] t){ if(t==null || t.length <= 1) return true;原创 2012-10-04 21:41:19 · 4902 阅读 · 1 评论 -
用Java实现简单选择排序
package ch10; /** * 简单选择排序 * @author songjie * */ public class SelectSort { public static boolean selectSort(T[] t){ if(t==null || t.length <= 1) return true; for(int i = 0; i<t.length-1; i原创 2012-10-04 17:16:52 · 661 阅读 · 0 评论 -
用Java泛型实现堆排序
package ch10; public class HeapSort { /** * 筛选算法,即一次堆调整,调整为大顶堆 * 此算法假设t[s...m]除了t[s]外已经是一个大顶堆 * @param * @param t * @param s * @param m * @return true:成功进行一次筛选,false:筛选出错 */ priva原创 2012-10-04 19:53:35 · 895 阅读 · 0 评论 -
用Java泛型实现2-路插入排序
package ch10; /** * 2-路插入排序 * @author songjie * */ public class TwoWayInsertSort { /** * * @param * @param t:原始数组 * @param s:待返回的排好序的数组 * @return * @throws IllegalArgumentException原创 2012-10-04 16:38:17 · 1755 阅读 · 0 评论 -
用Java实现希尔排序
package ch10; public class ShellInsertSort { /** * 希尔排序 * @param * @param t:待排序数组 * @param dlta:增量数组 * @return */ public static boolean shellSort(T[] t, int[] dlta){ if(t==null || t原创 2012-10-04 16:58:43 · 547 阅读 · 0 评论 -
根据栈的入栈序列和出栈序列,打印push和pop的顺序-Amazon笔试题
该题目是Amazon的在线技术笔试的题目: 直接上代码吧,代码中有说明。只要我们实现calculateOperationSequence()方法就可以了 package amazon2; /* Enter your code here. Read input from STDIN. Print output to STDOUT */ import java.util.*; impor原创 2012-10-10 16:52:26 · 1730 阅读 · 0 评论