[JS]数値配列のソート
by mahny
HTML
<div>選択ソート</div>
<button onclick="sort(true)">昇順</button>
<button onclick="sort(false)">降順</button>
JavaScript
// 選択ソートサンプル(昇順)
// 最小の要素番号を配列から順次探して入れ替えていく
function generateDatas() {
const result = [];
for (let i = 0; i < 10; i++) {
result.push(Math.floor(Math.random() * 100));
}
return result;
}
function sort(isArc = true) {
const datas = generateDatas();
console.log('----- ソート前データ -----');
console.log(datas);
let len = datas.length;
for (let i = 0; i < len - 1; i++) {
let idx = i;
// 配列中の最小値(または最大値)を探す
if (isArc) {
for (let j = idx + 1; j < len; j++) {
if (datas[j] < datas[idx]) {
idx = j;
}
}
} else {
for (let j = idx + 1; j < len; j++) {
if (datas[idx] < datas[j]) {
idx = j;
}
}
}
// 最後に入れ替え
let tmpValue = datas[i];
datas[i] = datas[idx];
datas[idx] = tmpValue;
}
console.log('----- ソート後データ(' + (isArc ? '昇順' : '降順') + ') -----');
console.log(datas);
}