728x90
반응형
1)for+while문
function insertionSort(arr){
for(let i=0;i<=arr.length-1;i++){
let numberToInsert = arr[i];
let j = i - 1;
while(j>=0 && arr[j] > numberToInsert){
arr[j+1] = arr[j];
j = j - 1;
}
arr[j+1] = numberToInsert
}
return arr;
}
const arr = [8, 20, -2, 4, -6];
console.log(insertionSort(arr)); //-6 -2 4 8 20
Big-O는 n^2
2)이중 for문
function insertionSort(arr) {
for (let i = 0; i < arr.length; i++) {
let j = 0;
let tmp = arr[i];
for (j = i - 1; j >= 0; j--) {
if (arr[j] > tmp) arr[j + 1] = arr[j]
else break;
}
arr[j + 1] = tmp;
}
return arr;
}
arr = [11, 7, 5, 6, 10, 9];
console.log(insertionSort(arr));
//Big O는 n2
728x90
반응형
'개발공부 일지 > 코테' 카테고리의 다른 글
병합 정렬(merge Sort) - 자바스크립트(JS), C#(씨샵) (0) | 2023.06.15 |
---|---|
퀵 정렬(quick Sort)/(pivot Sort) - 자바스크립트, JS (0) | 2023.06.13 |
이진 탐색(Binary Search)-JS, 자바스크립트 (1) | 2023.02.05 |
프로그래머스 - 핸드폰 번호 가리기(JS, 자바스크립트)(정규표현식-전방탐색) (0) | 2023.02.02 |
프로그래머스 - 최대공약수와 최소공배수(JS, 자바스크립트) (0) | 2023.02.02 |
댓글