您的位置:首页 > 其它

常用算法之选择排序

2018-03-11 10:25 351 查看
选择排序的基本思想:在已给的数组中,首先挑选出最小的数之后跟第一个位置的数交换,因为每次都要数据之间的比较,所以选择排序比较适合杂乱的数据,对于已经有序的数列,则排序的性能不是很好。
算法的实现思路:我们可以每次将数组的第一位置的数作为最小的数之后查找除此数之外比它小的数,附设一个指针来指向当前最小数的位置,因为一次比较,不可能找出一轮循环中最小的数。
算法实现:
package sort;
//实现简单的选择排序(非稳定排序)
/**
* 思想:先从数中挑选一个最小的元素
* 跟第一个位置的数交换,接着找第二个最小的跟
* 第二个位置的数交换
* 缺点:无论数组是否有序,都需要从头开始一一比较交换数字
* 适用于杂乱无序的数组
* **/
public class SelectSort {
public void selectSort(int[] a){
//实现策略,我们可以按顺序让
//处于第一位的数跟剩下的数中最小的数交换位置
//以此类推
for(int i = 0; i<a.length-1;i++){
int min = i;
for(int j = i+1;j<a.length;j++){
if(a[min]>a[j]){
min = j;
}
}
int tem = a[min];
a[min] = a[i];
a[i] = tem;
}
}
public static void main(String[] args) {
int[] a = {4,3,8};
SelectSort selectSort = new SelectSort();
selectSort.selectSort(a);
for(int i = 0;i<a.length;i++){
System.out.println(a[i]);
}
}

}这样简单的选择排序就完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: