Java七武器----排序算法之選擇排序

最近在學習排序算法相關的知識,發現百度上一搜即有的東西有很多,但真正有價值的東西卻太少了,你需要不停的翻看,不停的找才能找到那些真正實用有價值的東西,在首頁搜索信息的質量方面很顯然谷歌要比百度好太多(甚至會有好多錯誤的東西),我想這就是大多數人更偏愛谷歌的原因吧,其實這個現象和動漫類似,我們的國漫都是喜洋洋灰太狼,沒有火影,海賊,龍珠,而日漫有這些,當然更多人會去關注日漫。其實國內網站的一大弊病就是與廣告、營銷進行了關聯,真正做良心網站以用戶爲中心的設計真是鳳毛麟角,少之又少。

選擇排序示意圖

選擇排序原理的直觀性

選擇排序不像冒泡,選擇排序更加簡單直觀,理解起來也比較容易。選擇排序的核心原理一樣需要藉助雙重循環,外層循環總次數是待排序數組長度,循環從第一個索引位開始。內循環的起始索引在外循環的基礎上加一也就是從起始值的相鄰位進行比較,若出現小於外循環賦值的記錄其索引值,並更新外循環初始值,直到循環完畢確認最小值以及最小值對應的索引。最後將最小值和區間初始值藉助中間值換位賦值,實現排序。

代碼實現

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;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章