`

各种排序算法及其java程序实现(2) -- 选择排序

 
阅读更多

选择排序

1. 基本思想:

  每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

2. 排序过程:

【示例】:

  初始关键字[49 38 65 97 76 13 27 49]

第一趟排序后13 [38 65 97 76 49 27 49]

第二趟排序后13 27 [65 97 76 49 38 49]

第三趟排序后13 27 38 [97 76 49 65 49]

第四趟排序后13 27 38 49 [49 97 65 76]

第五趟排序后13 27 38 49 49 [97 97 76]

第六趟排序后13 27 38 49 49 76 [76 97]

第七趟排序后13 27 38 49 49 76 76 [ 97]

最后排序结果13 27 38 49 49 76 76 97

 

java代码实现:

 

package test.suanfa;

public class SelectSort {

	public static void main(String[] args) {
		Integer[] intgArr = { 5, 9, 1, 4, 2, 6, 3, 8, 0, 7 };
		SelectSort insertSort = new SelectSort();
		insertSort.select(intgArr);
		for (Integer intObj : intgArr) {
			System.out.print(intObj + " ");
		}
	}

	public void select(Integer[] array) {

		int minIndex;// 最小索引

		/*
		 * 
		 * 循环整个数组(其实这里的上界为array.length - 1 即可,因为当i= array.length-1
		 * 
		 * 时,最后一个元素就已是最大的了,如果为array.length时,内层循环将不再循环),每轮假设
		 * 
		 * 第一个元素为最小元素,如果从第一元素后能选出比第一个元素更小元素,则让让最小元素与第一
		 * 
		 * 个元素交换
		 */

		for (int i = 0; i < array.length; i++) {

			minIndex = i;// 假设每轮第一个元素为最小元素

			// 从假设的最小元素的下一元素开始循环

			for (int j = i + 1; j < array.length; j++) {

				// 如果发现有比当前array[smallIndex]更小元素,则记下该元素的索引于smallIndex中

				if ((array[j].compareTo(array[minIndex])) < 0) {

					minIndex = j;

				}

			}

			// 先前只是记录最小元素索引,当最小元素索引确定后,再与每轮的第一个元素交换

			swap(array, i, minIndex);

		}

	}

	public static void swap(Integer[] intgArr, int x, int y) {

		// Integer temp; //这个也行

		int temp;

		temp = intgArr[x];

		intgArr[x] = intgArr[y];

		intgArr[y] = temp;

	}

}

 

 

分享到:
评论

相关推荐

    各种排序算法比较(java实现)

    理解和熟练掌握这些排序算法,不仅可以提高编程能力,还能在解决实际问题时选择最适合的排序方法,从而优化程序性能。在实际开发中,结合数据结构和算法,可以有效地处理大量数据,提升软件系统的效率。

    最快的排序算法 javahash实现-Java-哈希算法-最快的实现,排序算法数据结构

    7. 排序算法的选择:在选择排序算法时,需要考虑到哈希函数的选择和实现方式,以及实际应用场景的需求。 8. 数据结构的选择:在选择数据结构时,需要考虑到ハシ表、树形结构、图结构等不同的数据结构的优缺点,并...

    最快的排序算法 java最快的排序-在Java中对列表进行排序的最快方法,排序算法数据结构

    在 Java 中,还有其他的排序算法,如堆排序、Radix 排序等,每种排序算法都有其优缺点,选择合适的排序算法取决于具体的应用场景。 在上述代码中,使用了 List 接口来存储 ServerInfo 对象列表,并使用了 ...

    各种排序算法java实现

    标题 "各种排序算法java实现" 涉及到的是计算机科学中的一个重要领域——算法,特别是排序算法在Java编程语言中的具体应用。排序算法是数据结构与算法分析中的基础部分,它们用于将一组数据按照特定顺序排列。在这个...

    常见的八大排序算法及其JAVA实现

    本篇文章将深入探讨八大常见的排序算法,并提供它们在Java语言中的具体实现。这八大排序算法包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序以及计数排序。 1. 冒泡排序(Bubble Sort):...

    如何使用Java实现归并排序算法,程序详细解读

    归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序...

    java 字符串a-z排序

    此外,对于大字符串,效率也是一个需要考虑的因素,可以考虑使用更高效的排序算法或数据结构。 在提供的文件列表中,`Zifuchuan.java`可能是实现上述逻辑的源代码,而`www.pudn.com.txt`可能是一个包含测试数据的...

    IT面试笔试-各种排序算法Java实现

    【IT面试笔试中的排序算法Java实现】 在IT面试和笔试中,掌握各种排序算法的实现是必不可少的技能。本文将详细介绍几种经典的排序算法,并提供Java语言的实现代码,包括冒泡排序、插入排序、选择排序和快速排序。...

    各种排序算法 JAVA代码实现

    根据提供的文件信息,我们可以归纳总结出以下几个主要的排序算法及其JAVA代码实现: ### 1. 插入排序(Insert Sort) 插入排序是一种简单的排序方法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序...

    Java排序算法实现

    Java排序算法实现 Java排序算法实现 Java排序算法实现

    常用排序算法的java实现(冒泡、插入、选择、希尔、归并、快排)

    本篇文章将详细讲解标题中提到的六种常见排序算法的Java实现。 1. **冒泡排序**:冒泡排序是最基础的排序算法之一,它通过不断交换相邻的逆序元素来逐渐将较大的元素“浮”到数组的前端。在Java中,冒泡排序的基本...

    快速排序算法及其Java实现

    内容概要:本文详细介绍了快速排序算法的概念与实现方式。快速排序由英国计算机科学家Tony Hoare于1960年提出,是一种基于分治策略的高效排序方法。本文主要讲解了快速排序的工作原理,同时提供了一段详细的Java语言...

    详解Java常用排序算法-选择排序

    详解Java常用排序算法-选择排序 选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从待排序的元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的元素排完。 选择...

    常用各种排序算法Java的实现_差不多了__.rar

    本资源"常用各种排序算法Java的实现_差不多了__.rar"显然是一个包含了各种经典排序算法Java实现的压缩文件,对于学习和理解这些算法的开发者来说极具价值。 首先,我们来概述一下常见的排序算法: 1. 冒泡排序:是...

    各种排序算法java源代码

    本资源提供了Java语言实现的五种经典排序算法:冒泡排序、快速排序、插入排序、选择排序以及测试程序。下面将详细介绍这四种排序算法的原理、特点以及Java实现的关键点。 1. **冒泡排序**: 冒泡排序是一种简单...

    常用排序算法java演示

    本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...

    数据结构 各种排序算法 java图形界面实现与时间性能测试

    本项目主要关注各种排序算法的Java实现,并通过图形用户界面(GUI)进行演示与时间性能测试。下面将详细介绍这些排序算法及其Java实现的关键点。 1. **插入排序**: - **直接插入排序**:这是一种简单的排序方法,...

Global site tag (gtag.js) - Google Analytics