选择排序(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):若无解,则报告错误信息;否则见教学计划输入到指定...
算法-理论基础- 排序- 直接选择排序(包含源程序).rar
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
交换排序 选择排序 冒泡排序 插入排序
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
这是自己写的排序的程序 数据结构 选择排序 直接排序 冒泡排序
算法-理论基础- 排序- 直接插入排序(包含源程序).rar
直接选择排序(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#源代码 使用C#实现的数据结构中的排序算法
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){ ...
MIPS-汇编语言-冒泡排序-含伪代码以及完整注释,可以直接使用
printf("\t4: 直接选择排序\n"); printf("\t5: 堆排序\n"); printf("\t6: 归并排序\n"); printf("\t7: 希尔排序\n"); printf("\t***************************\n"); scanf("%d",&i); //输入整数1-7,选择排序...
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
数据结构---直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
八大排序java实现版本,直接插入排序、折半插入排序、冒泡排序、简单选择排序、希尔插入排序、快速排序 、堆排序、2-路归并排序 、基数排序,并有时间比较,博文...