`
yongsky
  • 浏览: 54854 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java数据结构和算法--排序

阅读更多
马上要找工作了,所以的把原来的重要的课程再回顾一下,我重要复习的是数据结构,在网上下了<<Java数据结构和算法>>这本书,准备用3个星期看完.看到不如做到,做到不如写到,我的记忆力不是很好,为了看了之后不会忘记,我把学习的体会和程序代码贴上来,以供以后参考.
(1)冒泡排序
package ChapterOne;

public class Bubble {

	public static void main(String[] args) {
		Bubble b = new Bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		b.bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
                  System.exit(0);
	}
	/**
	 * 冒泡排序
	 */
	public void bubble(){
		for(int i = arr.length-1;i > 1;i--){
			for(int j = 0;j < i;j++){
				if(arr[j] > arr[j+1])
					swap(j,j+1);
			}
		}
	}
	/**
	 * 交换数组中的两个数
	 * @param one
	 * @param two
	 */
	public void swap(int one,int two){
		long temp = arr[one];
		arr[one] = arr[two];
		arr[two] = temp;
	}
	
	static long arr[] = new long[20];
	/**
	 * 随机初始化一个长度为20的数组
	 */
	static{
		for(int i = 0;i < arr.length;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
}


(2)选择排序
package ChapterOne;

public class SelectSort {
	/**
	 * 初始化一个长度为size的数组
	 * @param size
	 */
	public SelectSort(int size){
		arr = new long[size];
		for(int i = 0;i < size;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
	/**
	 * 选择排序
	 * @return
	 */
	public long[] sort(){
		for(int i = 0;i < arr.length;i++){
			int minIndex = findMin(i);
			long min = arr[minIndex];
			//子数组中的所有的数后移一个位置
			for(int j = minIndex;j > 0;j--)
				arr[j] = arr[j-1];
			//把最小的数插入到最前端
			arr[0] = min;
		}
		return arr;
	}
	/**
	 * 查找一start为起始位置到数组最后位置这段子数组中最小的一个数的位置
	 * @param start
	 * @return
	 */
	public int findMin(int start){
		int min = start;
		for(int i = min;i < arr.length;i++)
			if(arr[min] > arr[i])
				min = i;
		return min;
	}
	
	public static void main(String[] args) {
		SelectSort ss = new SelectSort(10);
		ss.print();
		long oa[] = ss.sort();
		for(int i = 0;i < oa.length;i++)
			System.out.print(oa[i]+" ");
		System.out.println();
		System.exit(0);
	}
	public void print(){
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
	}
	
	long arr[];
}
分享到:
评论
4 楼 knight2010 2008-01-05  
有 什么 比较好的 数据结构 入门的书籍吗  国外的
3 楼 yongsky 2007-12-05  
非常感谢楼上的兄弟,现在我已经拿到4个公司的offer了,呵呵.
2 楼 反正就是喜欢编 2007-09-30  
顶,祝你找到称心如意的工作
1 楼 cfying 2007-09-30  
yongsky 写道
马上要找工作了,所以的把原来的重要的课程再回顾一下,我重要复习的是数据结构,在网上下了<<Java数据结构和算法>>这本书,准备用3个星期看完.看到不如做到,做到不如写到,我的记忆力不是很好,为了看了之后不会忘记,我把学习的体会和程序代码贴上来,以供以后参考.
(1)冒泡排序
package ChapterOne;

public class Bubble {

	public static void main(String[] args) {
		Bubble b = new Bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		b.bubble();
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
                  System.exit(0);
	}
	/**
	 * 冒泡排序
	 */
	public void bubble(){
		for(int i = arr.length-1;i > 1;i--){
			for(int j = 0;j < i;j++){
				if(arr[j] > arr[j+1])
					swap(j,j+1);
			}
		}
	}
	/**
	 * 交换数组中的两个数
	 * @param one
	 * @param two
	 */
	public void swap(int one,int two){
		long temp = arr[one];
		arr[one] = arr[two];
		arr[two] = temp;
	}
	
	static long arr[] = new long[20];
	/**
	 * 随机初始化一个长度为20的数组
	 */
	static{
		for(int i = 0;i < arr.length;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
}


(2)选择排序
package ChapterOne;

public class SelectSort {
	/**
	 * 初始化一个长度为size的数组
	 * @param size
	 */
	public SelectSort(int size){
		arr = new long[size];
		for(int i = 0;i < size;i++){
			arr[i] = (long) (Math.random()*100);
		}
	}
	/**
	 * 选择排序
	 * @return
	 */
	public long[] sort(){
		for(int i = 0;i < arr.length;i++){
			int minIndex = findMin(i);
			long min = arr[minIndex];
			//子数组中的所有的数后移一个位置
			for(int j = minIndex;j > 0;j--)
				arr[j] = arr[j-1];
			//把最小的数插入到最前端
			arr[0] = min;
		}
		return arr;
	}
	/**
	 * 查找一start为起始位置到数组最后位置这段子数组中最小的一个数的位置
	 * @param start
	 * @return
	 */
	public int findMin(int start){
		int min = start;
		for(int i = min;i < arr.length;i++)
			if(arr[min] > arr[i])
				min = i;
		return min;
	}
	
	public static void main(String[] args) {
		SelectSort ss = new SelectSort(10);
		ss.print();
		long oa[] = ss.sort();
		for(int i = 0;i < oa.length;i++)
			System.out.print(oa[i]+" ");
		System.out.println();
		System.exit(0);
	}
	public void print(){
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+" ");
		}
		System.out.println();
	}
	
	long arr[];
}
一天,男孩和女孩吵架了。他不再对她说“我爱你”,
当然她也不再对他说“我也是”。一天晚上,
他们谈到了分手的事,背对背睡下。半夜,
天上打雷了。第一声雷响时,他醒了,
下意识地猛地用双手去捂她的耳朵,
才发现不知何时他又拥着她。雷声紧接着炸,
假装什么也没发生,可谁都没有睡着,
她想也许他还爱我,生怕我受一点点吓。
他想,也许她还爱我,不然她不会流泪。
爱的最高境界是经得起平淡的流年。
世界上最美的木乃侯,这是一个古老的符咒,
请在收到此消息后发经三个论坛。
等你发完后看看三天后就能得到心爱的人。
不发的话你将有霉运一个月,同学说他试过了,很灵

相关推荐

    Java数据结构和算法-带书签目录扫描版

    《Java数据结构和算法-带书签目录扫描版》是一本深入探讨Java编程语言中数据结构和算法的书籍。此扫描版特别包含了完整的书签目录,使得读者在电子版阅读时能够快速定位到所需章节,提高了学习和查阅的效率。 在...

    Java数据结构和算法-第二版-高清扫描版-带目录书签

    《Java数据结构和算法》第二版是一本深入探讨Java编程中数据结构与算法的权威书籍。这本书涵盖了在软件开发中至关重要的基础知识,旨在帮助程序员提升解决问题的能力和代码效率。高清扫描版提供了清晰的文本和图表,...

    JAVA数据结构与算法-第二版

    美国计算机科学家Robert Lafore的著作《JAVA数据结构与算法-第二版》,经由计晓云、赵研等人的翻译,成为深入探讨这些概念的卓越教材。本书不仅涵盖了基础理论,还提供了大量Java语言中的实现示例,使得读者能够直观...

    java数据结构与算法.pdf

    Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点进行详细解释。 1. **数据结构**: - **稀疏数组**:当大量数据中大部分为零或...

    Java数据结构和算法.pdf

    资源摘要信息是关于Java数据结构和算法的知识点总结,涵盖了数组、栈与队列、链表、递归、哈希表、高级排序、二叉树、红黑树、堆、带权图等数据结构和算法概念。 一、数组 * 数组是相同类型变量的集合,可以使用...

    数据结构与算法-java

    数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。在Java编程中,理解这些概念可以帮助开发者编写出性能优异的程序。以下是基于标题“数据结构与算法-java”及描述中提到的“数据结构与算法...

    数据结构与算法--Java语言描述

    数据结构与算法是计算机科学的基础,对于任何编程语言来说,理解和掌握它们都是至关重要的,特别是对于Java语言。在这个“数据结构与算法--Java语言描述”的资料中,我们有望深入理解这些核心概念,并通过Java语言来...

    Java数据结构和算法中文第二版

    根据提供的信息,“Java数据结构和算法中文第二版”这本书主要关注的是数据结构与算法的相关内容。下面将基于这些信息,详细介绍数据结构与算法的核心概念、重要性和应用领域,以及在Java编程环境中如何实现这些概念...

    Java数据结构和算法(第二版)+源代码+Applets

    Java数据结构和算法是计算机科学中的核心概念,对于任何Java开发者来说,理解和掌握它们都是至关重要的。本资源包“Java数据结构和算法(第二版)+源代码+Applets”为学习者提供了一个全面且深入的学习平台,涵盖了...

    数据结构与算法-Java语言版

    主要内容包括:面向对象编程的基本原理,判定算法效率的方法,堆栈、队列及其应用,对于多种递归的详细讨论,二叉树、B树、2-4树等的查找和遍历等,分析排序、散列等数据结构的应用,图、NP完整性,数据压缩算法、...

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

    《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和...

    C、C++、JAVA数据结构与算法电子书

    C、C++和Java都是广泛使用的编程语言,它们在处理数据结构和算法时各有特点。以下是对这三种语言在数据结构与算法方面的一些关键知识点的详细阐述: 1. **数据结构**: - **数组**:基本的数据结构,用于存储同...

    java数据结构和算法学习笔记

    ### Java数据结构与算法学习笔记知识点总结 #### 一、数据结构概述 数据结构是对数据的一种组织形式,它决定了数据的存储方式以及处理数据的方法。常见的数据结构包括但不限于数组、链表、栈、队列、二叉树、图等...

    Java数据结构和算法(第二版)+随书源代码+applet小程序

    《Java数据结构和算法(第二版)》是一本专为希望深入理解Java编程中的数据结构与算法的读者设计的书籍。这本书的特点是从基础知识逐步引导读者进入复杂领域,通过结合实际的Applet小程序,使得理论知识变得生动直观。...

    java数据结构和算法

    java 数据结构和算法, 排序算法, 数组,链表,二叉树

    hello-algo-数据结构与算法-zh-csharp.pdf

    本书《Hello 算法》是为了帮助读者学习数据结构与算法而编写的,作者靳宇栋(Krahets)认为刷题虽然是学习算法的一种方法,但对于基础不足的同学来说,可能会感到困扰和挫折。因此,本书旨在引导读者探索数据结构与...

    Java数据结构与算法-笔记-代码-课件-资料

    内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、...

Global site tag (gtag.js) - Google Analytics