首先,從[0,len]中找到陣列中最小的元素,讓它與第乙個元素交換。接著從[1,len]中找出最小的元素,讓它與第二個元素交換。迴圈往復,最終使得陣列從小到大排序。
視覺化效果:這裡
/**
* created by yiying on 2017/4/22.
*/(function
(w)
/*** 選擇排序演算法實現
*/selection.prototype.sort = function
() }
//把最小元素放到最前面
this.exchange(i,min);}};
/*** 判斷m是否小於n
* @param m
* @param n
*/selection.prototype.less = function
(m,n) ;
/*** 交換陣列中m與n的位置
* @param m
* @param n
*/selection.prototype.exchange = function
(m,n) ;
/*** 列印排序後的陣列
*/selection.prototype.show = function
() ;
/*** 判斷是否已排序
* @returns
*/selection.prototype.issorted = function
() }
return
true;
};w.selection = selection;
})(window);
//測試**
(function
() )();
package com.algs;
public
class
selection
exchange(arr, i, min);
}} /**
* 比較m是否小於n
*@param m
*@param n
*@return
*/private
static
boolean
less(int m,int n)
/*** 交換m與n的位置
*@param a
*@param m
*@param n
*/private
static
void
exchange(int a, int m, int n)
public
static
void
show(int a)
} public
static
void
main(string args) ;
selection.sort(arr);
selection.show(arr);
}}
github: Day02 演算法選擇排序
1.選擇排序的思想就是對序列從頭至尾的選擇,得到最小的元素,和第乙個元素進行交換,接著重複此操作,最終得到乙個有序的序列。它輸出的就是原序列的乙個重排 使得a1 a2 a3 a4 a5 2.思想 n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序的結果 1 初始狀態 無序區 有序區為空 ...
演算法 排序 02
從序列中選擇乙個軸點元素 pivot 假設每次選擇 0 位置的元素為軸點元素 利用 pivot 將序列分割成 2 個子序列 1.將小於 pivot 的元素放在pivot前面 左側 2.將大於 pivot 的元素放在pivot後面 右側 3.等於pivot的元素放哪邊都可以 對子序列進行上述操作,直到...
排序演算法 02氣泡排序
氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。比較相鄰的元素。如果第乙個比第二個大,就交...