选择排序详解(Java实现)
发布日期:2021-07-26 07:20:47 浏览次数:2 分类:技术文章

本文共 947 字,大约阅读时间需要 3 分钟。

一、基本思想

    简单选择排序是最简单直观的一种算法,每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。

    在算法实现时,每一轮确定最小元素的时候会通过不断地比较交换来使得首位置为当前最小,交换是个比较耗时的操作。其实我们很容易发现,在还未完全确定当前最小元素之前,这些交换都是无意义的。

    因此可以通过设置一个变量min,每一次比较出存储较小元素,并且记录当前元素的数组下标,当本轮循环结束之后,那这个变量min存储的就是当前最小元素的下标,此时再执行交换操作,以此确定本轮遍历的最小元素放到了数组前部。

二、算法分析

    简单选择排序通过上面优化之后,无论数组原始排列如何,比较次数是不变的;对于交换操作,在最好情况下也就是数组完全有序的时候,无需任何交换移动,在最差情况下,也就是数组倒序的时候,交换次数为n-1次。综合下来,时间复杂度为O(n2)

三、编码实现

package sort;public class SelectSort {	public static void main(String[] args) {		//模拟数据		int[] array = {52,63,14,59,68,35,8,67,45,99};		System.out.println("原数组:");		for (int i : array) {			System.out.print(i+" ");		}		System.out.println();		selectSort(array);		System.out.println("排序后:");		for (int i : array) {			System.out.print(i+" ");		}	}		public static void selectSort(int[] arr){		for(int i = 0; i < arr.length-1; i++){			int min = i;			for(int j = i+1; j 

四、结果值查看

原数组:52 63 14 59 68 35 8 67 45 99 排序后:8 14 35 45 52 59 63 67 68 99

 

转载地址:https://blog.csdn.net/qq_38741971/article/details/81665112 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:二分查找算法详解(折半查询)
下一篇:插入排序详解(Java实现)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月23日 05时53分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章