この解答例はChatGPTによって生成されています,正しいかは自己判断で。
BFE.devでのAI解答例 - JavaScript コーディング問題
42. Insertion Sortを実装する
以下がJavaScriptでのInsertion Sort実装例です。
function insertionSort(arr) {
for (let i = 1, len = arr.length; i < len; i++) {
let j = i - 1;
let temp = arr[i];
while (j >= 0 && arr[j] > temp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
return arr;
}
この実装では、配列の一番最初の要素をソート済みにして、次の要素から順に挿入位置を探していくため、時間複雑性はO(n^2)です。また、新たな配列を作成するわけではないため、空間複雑性はO(1)です。さらに、安定ソートアルゴリズムとして知られています。