栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

快速理解简单选择排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快速理解简单选择排序

基本概念

所谓简单选择排序,就是对数组进行n-1次遍历,每次遍历都选择出最大的或最小的将其往前排

举个例子:有一个数组 4,5,3,1,2 将它进行从小到大排序

第一次遍历:找到数组中的最小值 1 ,将它移动到最前面(即和 4 进行交换),此时数组变为: 1,5,3,4,2

第二次遍历:数字 1 已经到了它所应该在的位置,就不用再管它,可以认为将其从数组中“剔除”,遍历从第二个数开始,找出此时最小的数 2 ,将他移动到数组的最前面(即和5进行交换),此时数组变为: 1,2,3,4,5

第三次遍历:照样将数字2从数组中“剔除”,遍历从第三个数开始,找出最小的数字 3,将其移动到数组的最前面(即和自身进行交换,相当于没交换),此时数组还是: 1,2,3,4,5

第四次遍历:照样将数字3从数组中“剔除”,遍历从第四个数开始,找出最小的数字4,将其移动到数组的最前面(即和自身进行交换,相当于没交换),此时数组还是: 1,2,3,4,5

最后得到的就是排好序的数组,无需进行第五次遍历,因为前面四个数排好后,剩下的最后一个位置,自然就是第五个数的位置

算法设计思路

总共需要两层循环,第一层循环控制遍历的次数,从上面的例子可以看出,遍历的次数是数组的长度减一;第二层循环是遍历寻找最小值的过程,从上面的例子可以看出,每次遍历完都要“剔除”一个数,并且这个数在数组最前面,因此,第n次遍历,会从下标n-1开始

JAVA实现
package com.sort;

import java.util.Arrays;

public class SearchSort {
	public static void main(String[] aaa) {
		int[] a=new int[]{5,2,4,3,1,8,6,7};
		sort(a);
		System.out.print(Arrays.toString(a));
	}
	public static void sort(int[] a) {
		//第一层循环,控制遍历次数
		for(int i=0;ia[j])
				{
					min=a[j];
					minNum=j;
				}
			}
			//将最小值移动到最前面
			a[minNum]=a[i];
			a[i]=min;
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992332.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号