分析:選擇排序演算法(不穩定)
每一輪從待排序的元素中選出最小(或最大)的乙個元素,順序放在已排好序的數列的後邊(看例項)。
文字解析:如第一輪:標記第乙個數(15)為最小,然後乙個乙個的比較,2比15小,就暫時標記2為最小,在往後和2乙個乙個的比較,入過有比2小的,就暫時標記那個數為最下,再繼續比較,入過後邊的數沒有比2小的了,則2和15交換位置(常用方法:加法,借助第三變數,移位等)。
如第二輪:因為數列中2最小,放在最前邊了,所以2就不在比較了,即標記剩下的待排序的第乙個為最小,在重複第一步(看第二輪的結果加深理解)。
剩下的就是重複第一輪第二輪了。
以例項加深理解:
給定陣列:15 2 45 32 56 89 4 15 55 6
第 一 輪:2 15 45 32 56 89 4 15 55 6 比較 9 次
第 二 輪:2 4 45 32 56 89 15 15 55 6 比較 8 次
第 三 輪:2 4 6 32 56 89 15 15 55 45 比較 7 次
第 四 輪:2 4 6 15 56 89 32 15 55 45 比較 6 次
第 五 輪:2 4 6 15 15 89 32 56 55 45 比較 5 次
第 六 輪:2 4 6 15 15 32 89 56 55 45 比較 4 次
第 七 輪:2 4 6 15 15 32 45 56 55 89 比較 3 次
第 八 輪:2 4 6 15 15 32 45 55 56 89 比較 2 次
第 九 輪:2 4 6 15 15 32 45 55 56 89 比較 1 次
源**:
public
class shuzu7 ;
int minindex = 0;//用於記錄每次比較的最小值下標。
//控制輪數
for (int i = 0; i < nums.length-1; i++)
}//判斷需要交換的下標是否是自己(i)
if(minindex!=i)
}//輸出結果
for (int i = 0; i < nums.length; i++)
}}
推薦演算法案例
userid,itemid,score 1 11 2 1 12 3 1 13 1 1 14 0 1 15 1 2 11 1 2 12 2 2 13 2 2 14 1 2 15 4 3 11 2 3 12 3 3 14 0 3 15 1 4 11 1 4 12 2 4 14 1 4 15 4 5 11...
java選擇排序演算法
選擇排序和氣泡排序差不多,只是氣泡排序在發現比它小的時候就交換,而選擇排序是只有在確定了最小的資料之後,才會發生交換。選擇排序的基本思想 第i趟簡單選擇排序是指通過n i次關鍵字的比較,從n i 1個記錄中選出關鍵字最小的記錄,並和第i個記錄進行交換。先臨時記錄其位置,只有在一趟 迴圈完以後確定了最...
java排序演算法之 選擇排序
選擇排序是一種非常簡單的排序演算法,從字面意思我們就可以知道,選擇就是從未排序好的序列中選擇出最小 最大 的元素,然後與第 i 趟排序的第 i 1 陣列中下標從 0 開始 個位置的元素進行交換,第 i 個元素之 前的序列就是已經排序好的序列。整個排序過程只需要遍歷 n 1 趟便可排好,最後乙個元素自...