排序演算法02 選擇排序

2021-07-30 23:54:23 字數 1533 閱讀 6776

首先,從[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氣泡排序

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。比較相鄰的元素。如果第乙個比第二個大,就交...