`

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

阅读更多
(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数据结构与算法-第二版

    总之,《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章,分别讲述了基本概念、数组、简单排序、堆和...

    java数据结构与算法中文版

    《Java数据结构与算法中文版》是一本深入探讨编程核心领域的书籍,主要针对Java程序员,旨在提升他们在数据处理和问题解决能力上的技能。这本书详细介绍了数据结构和算法的基础理论及其在Java语言中的实现,是Java...

    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