一. 选择排序的描述
选择排序(Selection sort)是一种简单直观的排序算法。 它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。 以此类推,直到全部待排序的数据元素的个数为零。 选择排序是不稳定的排序方法。
每次寻找最大(小)放到相应位置
注:红色表示当前最小值,黄色表示已排序序列,绿色表示当前位置。
二. 选择排序的思路
1.选择排序 一共有数组大小 -1轮排序
2.每一轮又是一个循环 ,找出最小的元素下标
2.1先假定当前就是最小的
2.2 然后和后面的数进行比较,如果比这个更小 ,得到这个数的下标
2.3 遍历到最后时 得到本轮的 最小数的下标
2.4 做交换 最小值放入这个待排的位置
三. 代码实现
package c06Sort;
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int [] arr= {20,40,30,10,60,50}; //{101,34,119,1};
System.out.println("排序前的数组");
System.out.println(Arrays.toString(arr));
selectSort(arr);
System.out.println("排序后的数组");
System.out.println(Arrays.toString(arr));
}
public static void selectSort(int []arr) {
// 算法分析时 先简单情况--->复杂 逐步解决问题
int index=0;
int temp=0;
for(int i =0; i<arr.length-1;i++) {
index=i;
for(int j=i+1; j<arr.length;j++) {
if(arr[index]>arr[j]) {
index=j;
//找到最小元素下标
}
}
//做交换
temp=arr[i];
arr[i]=arr[index];
arr[index]=temp;
}
}
}
四 .结果