Java实现选择排序算法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41291067/article/details/102556726

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 

猜你喜欢

转载自blog.csdn.net/qq_41291067/article/details/102556726