选择排序
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;
}
}
分享到:
相关推荐
理解和熟练掌握这些排序算法,不仅可以提高编程能力,还能在解决实际问题时选择最适合的排序方法,从而优化程序性能。在实际开发中,结合数据结构和算法,可以有效地处理大量数据,提升软件系统的效率。
7. 排序算法的选择:在选择排序算法时,需要考虑到哈希函数的选择和实现方式,以及实际应用场景的需求。 8. 数据结构的选择:在选择数据结构时,需要考虑到ハシ表、树形结构、图结构等不同的数据结构的优缺点,并...
在 Java 中,还有其他的排序算法,如堆排序、Radix 排序等,每种排序算法都有其优缺点,选择合适的排序算法取决于具体的应用场景。 在上述代码中,使用了 List 接口来存储 ServerInfo 对象列表,并使用了 ...
标题 "各种排序算法java实现" 涉及到的是计算机科学中的一个重要领域——算法,特别是排序算法在Java编程语言中的具体应用。排序算法是数据结构与算法分析中的基础部分,它们用于将一组数据按照特定顺序排列。在这个...
本篇文章将深入探讨八大常见的排序算法,并提供它们在Java语言中的具体实现。这八大排序算法包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序以及计数排序。 1. 冒泡排序(Bubble Sort):...
归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序算法,程序详细解读; 归并排序:如何使用Java实现归并排序...
此外,对于大字符串,效率也是一个需要考虑的因素,可以考虑使用更高效的排序算法或数据结构。 在提供的文件列表中,`Zifuchuan.java`可能是实现上述逻辑的源代码,而`www.pudn.com.txt`可能是一个包含测试数据的...
【IT面试笔试中的排序算法Java实现】 在IT面试和笔试中,掌握各种排序算法的实现是必不可少的技能。本文将详细介绍几种经典的排序算法,并提供Java语言的实现代码,包括冒泡排序、插入排序、选择排序和快速排序。...
根据提供的文件信息,我们可以归纳总结出以下几个主要的排序算法及其JAVA代码实现: ### 1. 插入排序(Insert Sort) 插入排序是一种简单的排序方法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序...
Java排序算法实现 Java排序算法实现 Java排序算法实现
本篇文章将详细讲解标题中提到的六种常见排序算法的Java实现。 1. **冒泡排序**:冒泡排序是最基础的排序算法之一,它通过不断交换相邻的逆序元素来逐渐将较大的元素“浮”到数组的前端。在Java中,冒泡排序的基本...
内容概要:本文详细介绍了快速排序算法的概念与实现方式。快速排序由英国计算机科学家Tony Hoare于1960年提出,是一种基于分治策略的高效排序方法。本文主要讲解了快速排序的工作原理,同时提供了一段详细的Java语言...
详解Java常用排序算法-选择排序 选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从待排序的元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的元素排完。 选择...
本资源"常用各种排序算法Java的实现_差不多了__.rar"显然是一个包含了各种经典排序算法Java实现的压缩文件,对于学习和理解这些算法的开发者来说极具价值。 首先,我们来概述一下常见的排序算法: 1. 冒泡排序:是...
本资源提供了Java语言实现的五种经典排序算法:冒泡排序、快速排序、插入排序、选择排序以及测试程序。下面将详细介绍这四种排序算法的原理、特点以及Java实现的关键点。 1. **冒泡排序**: 冒泡排序是一种简单...
本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...
本项目主要关注各种排序算法的Java实现,并通过图形用户界面(GUI)进行演示与时间性能测试。下面将详细介绍这些排序算法及其Java实现的关键点。 1. **插入排序**: - **直接插入排序**:这是一种简单的排序方法,...