package com.atguigu.sort;
import java.util.Arrays;
/*
* 选择排序: 每趟只交换最小值和某值的位置,其他位置不允许动。
* */
public class SelectSort {
public static void main(String[] args) {
int[] arr = {101,34,119,1};
for(int i =0;i<arr.length-1;i++) {//最后一个数肯定是最大的,不需要走
int min = arr[i]; //记录最小值
int minIndex =i;//记录最小值的索引。
for(int j =i+1;j<arr.length;j++) {//每一趟都找剩余的那个最小的
if(arr[j]<min) {
min = arr[j];
minIndex = j;
}
}
if(minIndex!=i) { //不等于i,说明有比预定值更小的值,就进行交换。如果没有发生改变就不交换
//先把预定值给那个最小值的位置
arr[minIndex]= arr[i];
//再把最小值给预定值的位置
arr[i] = min;
}
}
System.out.println(Arrays.toString(arr));
}
}
Java实现选择排序--O(n²)
最新推荐文章于 2022-08-19 23:37:45 发布