选择排序
前言
选择排序的算法太过复杂,因为每一次都要完全遍历整个数组确定了最值才能进行下一次的循环,是一种不稳定的排序,时间复杂度是n²,相对来说适用于数量较小的排序中,而不太适用于大量的数据进行排序。
选择排序描述
选择排序,就是每次遍历挑选出来最值和前面的值依次进行交换达到排序的效果。
假设数组元素有n个,第一次排序就是从arr[0]→arr[n-1]进行遍历,第二次就是从arr[1]→arr[n-1]进行遍历,第三次就是从arr[2]→arr[n-1]进行遍历…
总之,每一次都要完全遍历,所以十分麻烦,但是理解起来相对容易。
代码图解
代码
package Algorithm;
import java.util.Scanner;
//每次都选出最小的拿出来组成数组排序
public class Choose_Sort {
public static void main(String[] args) {
int n = new Scanner(System.in).nextInt();
int []arr = new int[n];
System.out.println("给数组依次赋值吧");
for(int i=0;i<n;i++) {
arr[i] = new Scanner(System.in).nextInt();
}
int p=0;
for (int i=0;i<arr.length-1;i++){
int min = arr[i];//拟定伪最小值
int j = i;//最小下标
for(int oo=i+1;oo<arr.length;oo++){
if (arr[oo]<min) {
min = arr[oo];
j = oo;
}
}
p=arr[i];
arr[i]=arr[j];
arr[j]=p;
}
for (int ii=0;ii<arr.length;ii++){
System.out.println(arr[ii]);
}
}
}