`
ansjsun
  • 浏览: 199623 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

算法实现系列第二章.堆排序

阅读更多

说白了就是二叉树排序..java中hashset中非基本数据类型的对象比较就是用的这个方式...

 

package binarytree;

public class BinaryTree {

	public static void main(String[] args) {
		Node root = null;

		int[] ints = { 123, 1234, 324, 2, 1, 12, 31, 4, 3, 3, 466, 7, 87, 87, 56, 456, 5 };

		root = new Node(ints[0]);
		
		for (int i = 1; i < ints.length; i++) {
			root.add(new Node(ints[i])) ;
		}

		print(root) ;
	}
	
	
	private static void print(Node node){
		if(node.right!=null){
			print(node.right) ;
		}
		System.out.print(node.value+",");
		if(node.left!=null){
			print(node.left) ;
		}
	
	}

	static class Node {

		public Node(int value) {
			this.value = value;
		}

		
		int value;
		Node left;
		Node right;

		/**
		 * 增加一个node
		 * 
		 * @param node
		 */
		public void add(Node node) {
			if (this.value > node.value) {
				if (this.right == null) {
					this.right = node;
				} else {
					this.right.add(node);
				}
			} else {
				if (this.left == null) {
					this.left = node;
				} else {
					this.left.add(node);
				}
			}
		}
	}
}
 其实我感觉不用怎么解释..大的放左面.小的放右面..就是遍历的时候...如果不用递归比较复杂..用了递归也挺饶人的
分享到:
评论

相关推荐

    算法:算法C语言实现 第1-4部分 基础知识、数据结构、排序及搜索

    第二部分“数据结构”(第3~5章)讲解算法分析中必须掌握的数据结构知识,主要包括基本数据结构、抽象数据结构、递归和树。第三部分“排序”(第6~11章)按章节顺序分别讨论基本排序方法(如选择排序、插入排序、...

    数据结构讲义(严蔚敏版)(含算法源码).rar

    数据结构讲义(严蔚敏版)(含算法源码) 第0章 复习提示 1 一、 教材内容 1 二、 复习提示 1 1. 经典算法 1 2. 绪论 1 3. 线性表 1 ...8. 堆排序 68 9. 归并排序 71 10. 基数排序 72 11. 各种排序方法比较 73

    第十章 排序作业及答案数据结构

    2. (共12分)已知数据序列为(12,5,9,20,6,31,24),对该项数据序列进行排序,分别写出直接插入排序、简单选择排序、快速排序、堆排序、二路归并排序及基数排序第一趟升序排序结果(其中堆排序的第一趟指序列...

    Java数据结构和算法(第二版).zip

    全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和队列、链表、递归、进阶排序、二叉树、红黑树、哈希表及图形等知识。附录中则提供了运行专题Applet和例程、相关书籍和问题解答。《Java数据结构和算法》...

    算法导论(第2版)参考答案

     第二章 开始(Getting Started)  第三章 函数的增长率(Growth of Functions)  第四章 递归(Recurrences)  第五章 概率分析与随机化算法(Probabilistic Analysis and Randomized Algorithms)  第二...

    算法导论 第二版 (完整版)

    第6章 堆排序 第7章 快速排序 第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和...

    算法:C语言实现(第1-4部分) Robert.Sedgewick.part1

    第二部分“数据结构”(第3~5章)讲解算法分析中必须掌握的数据结构知识,主要包括基本数据结构、抽象数据结构、递归和树。第三部分“排序”(第6~11章)按章节顺序分别讨论基本排序方法(如选择排序、插入排序、冒泡...

    C/C++常用算法手册.秦姣华(有详细书签).rar

    4.7.2 堆排序算法示例 121 4.8 合并排序法 123 4.8.1 合并排序算法 123 4.8.2 合并排序算法示例 126 4.9 排序算法的效率 129 4.10 排序算法的其他应用 130 4.10.1 反序排序 130 4.10.2 字符串数组的排序 132...

    算法:C语言实现(第1-4部分) Robert.Sedgewick.part2

    第二部分“数据结构”(第3~5章)讲解算法分析中必须掌握的数据结构知识,主要包括基本数据结构、抽象数据结构、递归和树。第三部分“排序”(第6~11章)按章节顺序分别讨论基本排序方法(如选择排序、插入排序、冒泡...

    算法实现实验平台 - 设计与初步实现1

    背景.算法设计与分析 .平台设计与实现 .算法平台设计与实现的挑战.本文贡献 .本文组织 .第二章 相关工作堆结构和堆排序 .STL 标准模板库 .第三章

    算法导论排序算法汇总

    算法导论中第二章所有排序的自己模拟,快速排序,堆排序,计数排序,最大最小数,选择第n个数等等

    Java数据结构与算法中的源代码和applet - 站长下载

    第二章类之间的关系 第三章类的设计 第四章算法介绍 第五章泛型类与方法 第六章递归 第七章排序算法 第八章集合类型 第九章基于数组的列表集合 第十章链表 第十一章实现LinkedList类 第十二章迭代器 第十三章迭代器...

    算法导论 第二版

    第6章 堆排序 第7章 快速排序 第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和...

    算法导论-第三版(中文).rar

    第二章 开始(Getting Started) 第三章 函数的增长率(Growth of Functions) 第四章 递归(Recurrences) 第五章 概率分析与随机化算法(Probabilistic Analysis and Randomized Algorithms) 第二部分(Part ...

    算法导论Introduction.to.Algorithms,.Second.Edition.part2(英文)

     第二章 开始(Getting Started)  第三章 函数的增长率(Growth of Functions)  第四章 递归(Recurrences)  第五章 概率分析与随机化算法(Probabilistic Analysis and Randomized Algorithms)  第二部分...

    数据结构与算法分析第二版 ---C语言描述(附加答案)

    堆6.6 左式堆6.6.1 左式堆的性质6.6.2 左式堆的操作6.7 斜堆6.8 二项队列6.8.1 二项队列结构6.8.2 二项队列操作6.8.3 二项队列的实现总结练习参考文献第7章 排序7.1 预备知识7.2 插入排序7.2.1 算法7.2.2 插入排序的...

    算法导论Introduction.to.Algorithms,.Second.Edition.part1(英文版)

     第二章 开始(Getting Started)  第三章 函数的增长率(Growth of Functions)  第四章 递归(Recurrences)  第五章 概率分析与随机化算法(Probabilistic Analysis and Randomized Algorithms)  第二部分...

Global site tag (gtag.js) - Google Analytics