选择排序
1、选择排序思路
选择排序是一种简单直观的排序算法。每次循环选择最小的一个。
其基本原理是:
(1)经过第一次比较后得到最小的记录,然后将记录与第一个位置的记录进行交换;
(2)接着对不包括第一个位置的其他记录进行第二轮比较,得到最小的记录并与第二个位置的记录交换;
(3)重复这个过程,直到进行比较的记录只有一个为止。
2、选择排序实现
public class test01 {
public static void main(String[] args) {
int[] arr={34,76,23,10,87,60,59,29,83};
selectSort(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
/**
* 选择排序
* @param arr
*/
public static void selectSort(int[] arr){
int temp=0;//记录最小值
int flag=0;//记录最小值的位置
for(int i=0;i<arr.length;i++){
temp=arr[i];
flag=i;//首先初始化最小值的位置在i
for(int j=i+1;j<arr.length;j++){//从第i+1处开始比较
if(arr[j]<temp){
temp=arr[j];
flag=j;//如果被比较的值比之前比较出的最小值小,就更新最小值位置信息
}
}
if(flag!=i){//如果最小值的位置flag与最初i不相等,则将i与flag位置交换
arr[flag]=arr[i];
arr[i]=temp;
}
}
}
}
运行结果:
10 23 29 34 59 60 76 83 87