版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1、选择排序算法的概念:
从第一个元素开始,扫描整个待排数组,找到最小的元素放之后再与第一个元素交换位置,然后再从第二个元素开始,继续寻找最小的元素与第二个元素交换位置,依次类推。
2、动画演示:
3、时间复杂度:
选择排序算法时间复杂度为:O(n^2)
第一次需要检查n个元素,但随后检查的元素数依次为n - 1, n – 2, …, 2和1。平均每次检查的元素数为2/n, 因此运行时间为 (n^2-n),因此可以视为(n^2)。
4、代码描述:
import java.util.Scanner;
public class Selection {
public static void main(String[] args) {
Scanner sr= new Scanner(System.in);
int N = sr.nextInt();
int[] array = new int[N];
for(int i = 0 ; i <N;i++) {
array[i] = sr.nextInt();
}
int minId=0;
for(int i = 0;i<N-1;i++) {
int min = array[i];
for(int j =i+1;j<N;j++) {
if(min>array[j]) {
min = array[j];
minId=j;
}
}
if(minId!=0) {
int temp = array[minId];
array[minId] = array[i];
array[i] = temp;
}
}
for(int i = 0 ;i<N;i++) {
System.out.print(array[i]+" ");
}
}
}
5、输出:
输入: 5
1 3 2 6 5
输出:1 2 3 5 6