选择排序算法是比较简单的排序算法,其思路比较直观,选择排序算法在每一步中选取最小值来重新判断,从而达到排序的目的。
排序流程如下:
1)首先从原始数组中选择最小的一个数据,将其和位于第一个位置的数据交换
2)接着从剩下的n-1个数据中选词次小的一个数据,将其和第二个位置的数据交换
3)然后不断重复上述过程,直到最后二个数据完成交换
例如下数据
初始数据 118 101 105 127 112
一次排序 101 118 105 127 112
二次排序 101 105 118 127 112
三次排序 101 105 112 127 118
四次排序 101 105 112 118 127
public class SelectSort {
public static void main(String[] args) {
int[] a = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1, 8 };
System.out.println("排序之前:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
// 简单的选择排序
for (int i = 0; i < a.length; i++) {
int min = a[i];
int n = i; // 最小数的索引
for (int j = i + 1; j < a.length; j++) {
if (a[j] < min) { // 找出最小的数
min = a[j];
n = j;
}
}
a[n] = a[i];
a[i] = min;
}
System.out.println();
System.out.println("排序之后:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
分享到:
相关推荐
选择排序法源代码,具体代码与解释,绝对能运行成功的,放心使用。
C语言 排序法 选择排序法
用选择排序法对数组排序,选择排序用函数对立起来。
算法作业的线性选择排序 算法作业的线性选择排序 算法作业的线性选择排序
功能:编写函数用选择排序法对数组中的数据进行从小到大的排序;
以单链表为存储结构实现简单选择排序的算法
合并排序算法和快速排序算法采用了采用分治法、递归的方法,将时间复杂度降为O(nlogn)。在本次实验中将数据量提到5万的时候,该类算法运行时间仍在几毫秒左右,而上面的3种算法运行时间已经到达十几秒左右,效率...
Java语言实现的选择排序算法,代码里头有详细注释,注释皆为简单英文,因为这个算法比较简单,欢迎新手下载学习使用,欢迎后期的学习交流!
选择排序算法C语言源程序,算法思想:比如有10个数,首先遍历10个数从中找出最小值,将其放在第1位,再从剩余的9个数找出最小值,将其放在第2位……,以此类推,直至将10位数按从小到大排序结束为止。
使用选择排序法对以为数组进行排序,程序完全可以运行,方便大家学习
选择排序法对10个数进行排序,选择排序法对10个数进行排序
java 选择排序法 java 选择排序法 java 选择排序法
这是我自己做的选择排序法的程序, 是用VC++写的,希望对大家有用
c#实现选择排序算法select_sort算法
C#控制台程序,用选择排序法对一组数进行升序获降序进行排列。并有继续或退出的选项。
用C++写了以上三种排序算法,对初学数据结构的同学一个参考
插入排序 选择排序 算法插入排序 选择排序 算法插入排序 选择排序 算法插入排序 选择排序 算法
单链表选择排序算法,包括带头结点和不带头结点的算法,对大家帮助很大。
该源码使用Qt可以可视化展示选择排序算法实现效果,通过可视化的方式和实时显示算法比较和移动的次数,方便初学者理解选择排序算法的时间复杂度
用C写的选择排序算法,最基础的,如果有什么建议直接留言,后续会贴上其它算法