一、排序算法的分类
二、直接选择排序的原理
选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
三、直接选择排序的实现
public class SelectSort {
/**
* 选择排序
* 选择第一个与其后的所有元素进行比较,将最小值放在第一个位置
* 第一个位置放好之后,再选择第二个与其后的所有元素进行比较,再将最小值放在第二个位置
* ...
* 以此类推,直到最后一个位置也被放置了元素
*
* @param a int数组
*/
public static void selSort(int a[]){
if(a==null||a.length==0){
return;
}
for (int i = 0; i < a.length; i++) {
int tmp = a[i];//存储遍历时最小的值
int flag = i;//存储最小值的位置
for(int j = i+1;j<a.length;j++){
if(a[j]<tmp){
//找到更小的值,将值和位置存储起来
tmp = a[j];
flag = j;
}
}
int tmp2 = a[i];//临时保存a[i]的值,用于交换值得位置
a[i] = tmp;
a[flag] = tmp2;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] test = {2,3,5,4,9,6,7};
selSort(test);
for(int i=0; i<test.length; i++){
System.out.print(test[i] + " ");
}
}
}
测试结果:
2 3 4 5 6 7 9
版权声明:本文为xdzhouxin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。