选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
演示地址:http://www.yxqzzx.cn/teacher/ShowArticle.asp?ArticleID=417
初始数组:
7 3 4 1 5 8
第1趟排序:
7 | 1 3 4 7 5 8
第2趟排序:
7 | 1 3 4 7 5 8
第3趟排序:
7 | 1 3 4 7 5 8
第4趟排序:
7 | 1 3 4 5 7 8
简单点说,就是从数组0位置开始遍历,找出最小的元素,将它与数组1的元素进行交换,然后从数组1位置开始遍历,找出最小的元素,将他与数组1的元素进行交换,依此类推,最后得到从小到大的数组。
/**
* 直接选择排序
*
* @param unsorted
*/
public static void selection_sort(int[] unsorted) {
for (int i = 0; i < unsorted.length; i++) {
int min = unsorted[i], min_index = i;
for (int j = i; j < unsorted.length; j++) {
if (unsorted[j] < min) {
min = unsorted[j];
min_index = j;
}
}
if (min_index != i) {
int temp = unsorted[i];
unsorted[i] = unsorted[min_index];
unsorted[min_index] = temp;
}
}
}
分享到:
相关推荐
直接选择排序-flash演示 可自己输入测试数据...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
三、基本要求:(1):输入参数:学期总数,一学期的学分上限,每门课的课程号,学分,直接先修关系的课程号。(2):课程号尽可能的集中在前几个学期中。(3):若无解,则报告错误信息;否则见教学计划输入到指定...
提供的压缩包文件“算法-理论基础- 排序- 直接选择排序(包含源程序).pdf”可能包含更详细的解释、示例代码以及可能的性能分析。通过阅读这份文档,你可以深入理解直接选择排序的工作机制,学习如何编写对应的源...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
交换排序 选择排序 冒泡排序 插入排序
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
这是自己写的排序的程序 数据结构 选择排序 直接排序 冒泡排序
各种排序算法的性能和选择直接影响着数据处理的效率和准确性。本文将对快速排序、归并排序、堆排序等常见排序算法进行比较和分析,探讨它们的优缺点和适用场景。 首先, let's 看一下这些排序算法的时间复杂度和...
"数据结构--排序--思维导图" 数据结构中排序是指将一组无序的记录序列按照一定的规则排列成有序的序列,排序的目的是为了提高数据的存储和检索效率。排序算法的稳定性是指在排序过程中,如果待排序表中有两个元素Ri...
直接选择排序(Straight Select Sorting) 也是一种简单的排序方法,它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,....,第i次从R[i-1]~R[n-1]中选取...
本资源提供的“常用的内部排序---源码”包含了C语言实现的一些经典排序算法,这对于学习和理解这些算法的工作原理非常有帮助。 1. **冒泡排序**:冒泡排序是最简单的排序算法之一,通过不断交换相邻的错误位置元素...
插入排序是基于一个元素一个元素地插入到已排序序列中的基本排序方法,它包含直接插入排序、折半插入排序和2路插入排序等变体。选择排序的策略是找到序列中的最小(或最大)元素,并将它与序列的起始位置进行交换,...
直接插入排序是一种简单直观的排序算法,它是通过构建有序序列,对于未排序数据,在已排序...通过阅读"算法-理论基础- 排序- 直接插入排序(包含源程序).pdf"文件,你可以深入了解其细节并实践代码,提升编程能力。
在多线程环境中,这三种排序算法可以通过并发编程的方式并行化,例如使用Java的`ExecutorService`和`Future`来管理多个排序任务,或者使用`Thread`直接创建线程进行排序。这种方式可以显著提高排序效率,尤其是在...
function SelectSort(arr) { //选择排序->直接选择排序 var st = new Date(); var temp; for(var i=0; i; i++) { var k = i; for(var j=i+1; j; j++) { if((arr[j]) (arr[k])) k = j; } if (k != i){ ...
在本文中,我们将深入探讨四种常见的内部排序方法:插入排序、快速排序、选择排序以及再次提到的选择排序。这四种排序方法在不同的场景下各有优劣,理解它们的工作原理和性能特性对于优化算法至关重要。 **1. 插入...
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...