// utils.js
/**
* 交換陣列中的2個元素
* @param arr
* @param i
* @param j
*/
function swap (arr, i, j) {
const temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
* 隨機生成l到r之間的一個值
* @param l
* @param r
* @return {*}
function getRandom (l, r) {
return Math.round(Math.random() * (r - l)) + l;
// sortHelper.js
* 生成隨機陣列
* @param n 陣列長度
* @param range 陣列中元素取值範圍
* @return {[]}
function genRandomArray (n, range = n) {
const arr = [];
for (let i = 0; i < n; i++) {
arr[i] = Math.floor(Math.random() * range);
return arr;
* 檢查一個數組是否為有序陣列
* @return {boolean}
function isSorted (arr) {
for (let i = 1; i < arr.length - 1; i++) {
if (arr[i + 1] < arr[i]) {
return false;
return true;
// utils.js
/**
* 交換陣列中的2個元素
* @param arr
* @param i
* @param j
*/
function swap (arr, i, j) {
const temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
/**
* 隨機生成l到r之間的一個值
* @param l
* @param r
* @return {*}
*/
function getRandom (l, r) {
return Math.round(Math.random() * (r - l)) + l;
}
// sortHelper.js
/**
* 生成隨機陣列
* @param n 陣列長度
* @param range 陣列中元素取值範圍
* @return {[]}
*/
function genRandomArray (n, range = n) {
const arr = [];
for (let i = 0; i < n; i++) {
arr[i] = Math.floor(Math.random() * range);
}
return arr;
}
/**
* 檢查一個數組是否為有序陣列
* @param arr
* @return {boolean}
*/
function isSorted (arr) {
for (let i = 1; i < arr.length - 1; i++) {
if (arr[i + 1] < arr[i]) {
return false;
}
}
return true;
}