选择排序原理
将要排序的一组数字进行遍历。
第一次遍历,将第一个位置上的数字与后面的数字进行比较,如果后面的数字比第一个位置上的元素小,则将两个数字的位置进行交换。
第二次遍历,将第二个位置上的数字与后面的数字进行比较,如果后面的数字比第二个位置上的元素小,则将两个数字的位置进行交换。
依次进行遍历、位置交换,直到这组数字排序完成。
比如要排序的数字是4,2,7,3,6
第一次遍历,将最小的2筛选出来:2,4,7,3,6
剩下数字:4,7,3,6
第二次遍历,将最小的3筛选出来:3,7,4,6
剩下数字:7,4,6
第三次遍历,将最小的4筛选出来:4,7,6
剩下数字:7,6
第四次遍历,将最小的6筛选出来:6,7
排序完成。
假设要遍历数字的个数是n,则需要遍历的次数是n-1
代码实现
public class SelectSort{
public static void main(String[] args){
int[] a = {4 ,2 ,7 ,3 ,6};
//选择排序
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重新赋值
min = j;
}
}
//交换位置
if(min != i){
int temp;
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
//输出
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}