选择排序
在未排序的数组中,用第一个数去和后面的数比较,找出最小的数,和第一个数交换。第一个数已为已排序的数。
相当于0~7
从0~7中找到最小的数放在0
从1~7中找到最小的数放在1
从2~7中找到最小的数放在2
...以此类推
从6~7中找到最小的数放在6
共7次
Java代码如下:
public class SelectSort {
public static void main(String[] args) {
int[] arr = {5, 3, 8, 6, 2, 7, 1, 4};
selectSort(arr);
}
private static void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
// 最小值下标 假设每一轮的第1一个元素是最小值
int xb=i;
for (int j=i+1;j<arr.length;j++){
// 找到最小元素下标
if(arr[j]<arr[xb]){
xb=j;
}
}
// 说明有更小的交换 否则arr[i]就是最小值固定
if(xb!=i){
int temp=arr[xb];
arr[xb]=arr[i];
arr[i]=temp;
}
printArr(arr);
}
}
private static void printArr(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
}
}