Java七武器----排序算法之选择排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37979178/article/details/86717575

最近在学习排序算法相关的知识,发现百度上一搜即有的东西有很多,但真正有价值的东西却太少了,你需要不停的翻看,不停的找才能找到那些真正实用有价值的东西,在首页搜索信息的质量方面很显然谷歌要比百度好太多(甚至会有好多错误的东西),我想这就是大多数人更偏爱谷歌的原因吧,其实这个现象和动漫类似,我们的国漫都是喜洋洋灰太狼,没有火影,海贼,龙珠,而日漫有这些,当然更多人会去关注日漫。其实国内网站的一大弊病就是与广告、营销进行了关联,真正做良心网站以用户为中心的设计真是凤毛麟角,少之又少。

选择排序示意图

选择排序原理的直观性

选择排序不像冒泡,选择排序更加简单直观,理解起来也比较容易。选择排序的核心原理一样需要借助双重循环,外层循环总次数是待排序数组长度,循环从第一个索引位开始。内循环的起始索引在外循环的基础上加一也就是从起始值的相邻位进行比较,若出现小于外循环赋值的记录其索引值,并更新外循环初始值,直到循环完毕确认最小值以及最小值对应的索引。最后将最小值和区间初始值借助中间值换位赋值,实现排序。

代码实现

public class ArithmeticUtil{
	public int[] static selectionSort(int[] originalData){
		if(originalData.length==0)
			return originalData;
		for(int i=0;i<originalData.length;i++){
			int midValue=originalData[i];
			int midIndex=i;
			for(int j=i+1;j<originalData.length;j++){
				if(originalData[j]<midValue){
					midValue=originalData[j];
					midIndex=j;
				}	
			}
			originalData[midIndex]=originalData[i];
			originalData[i]=midValue;
		}
		return originalData;
	}
}

猜你喜欢

转载自blog.csdn.net/qq_37979178/article/details/86717575
今日推荐