삽입정렬

MINBOK·2022년 3월 24일
0
post-thumbnail

삽입정렬

인덱스 0번째 값은 정렬이 되어 있다고 가정하고, 인덱스 첫 번째 요소부터 정렬함,
비교되는 요소가 정렬된 부분보다 값이 작다면 요소 교환을 실행함

let 입력값 = [5, 10, 66, 77, 54, 32, 11, 15];
let 정렬된배열 = [];
let 배열의길이 = 입력값.length; // 입력값이 줄어들면 length도 줄어드는 것을 방지하기위해 선언

function getIdx(정렬된배열, 삽입값) {
    for (let i in 정렬된배열) {
        if(삽입값 < 정렬된배열[i]) {
            return i;
        }
    }
    return 정렬된배열.length;
}

for(let i = 0; i < 배열의길이; i++) {
    삽입값 = 입력값.shift();
    인덱스 = getIdx(정렬된배열, 삽입값);
    정렬된배열.splice(인덱스, 0, 삽입값);
}

풀이

i = 0)

정렬된 배열 = [];

삽입값 = 5;
인덱스 = 0;
정렬된배열.splice(0, 0, 5);

i = 1)

입력값 = [10, 66, 77, 54, 32, 11, 15];
정렬된 배열 = [5];

삽입값 = 10;
인덱스 = 1;
정렬된배열.splice(1, 0, 10);

i = 2)

입력값 = [66, 77, 54, 32, 11, 15];
정렬된 배열 = [5, 10];

삽입값 = 66;
인덱스 = 2;
정렬된배열.splice(2, 0, 66);

i = 3)

입력값 = [77, 54, 32, 11, 15];
정렬된 배열 = [5, 10, 66];

삽입값 = 77;
인덱스 = 3;
정렬된배열.splice(3, 0, 77);

i = 4)

입력값 = [54, 32, 11, 15];
정렬된 배열 = [5, 10, 66, 77];

삽입값 = 54;
인덱스 = 2;
정렬된배열.splice(2, 0, 54);

i = 5)

입력값 = [32, 11, 15];
정렬된 배열 = [5, 10, 54, 66, 77];

삽입값 = 32;
인덱스 = 2;
정렬된배열.splice(2, 0, 32);

i = 6)

입력값 = [11, 15];
정렬된 배열 = [5, 10, 32, 54, 66, 77];

삽입값 = 11;
인덱스 = 2;
정렬된배열.splice(2, 0, 11);

i = 7)

입력값 = [15];
정렬된 배열 = [5, 10, 11, 32, 54, 66, 77];

삽입값 = 15;
인덱스 = 3;
정렬된배열.splice(3, 0, 15);

최종정렬

입력값 = [];
정렬된 배열 = [5, 10, 11, 15, 32, 54, 66, 77];

JavaScript

Array.prototype.shift()

배열에서 맨 앞 요소를 제거하고, 제거된 요소를 반환하는 메서드

const array1 = [1, 2, 3];

const firstElement = array1.shift();

console.log(array1); // [2, 3]
console.log(firstElement); // 1

참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/shift

Array.prototype.unshift()

새로운 요소를 배열의 맨 앞쪽에 추가하는 메서드

const array1 = [1, 2, 3];

array1.unshift(4, 5);

console.log(array1); // [4, 5, 1, 2, 3]

참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift

Array.prototype.push()

배열의 끝에 하나 이상의 요소를 추가하는 메서드

const animals = ['pigs', 'goats', 'sheep'];

animals.push('cows');

console.log(animals); // ["pigs", "goats", "sheep", "cows"]

animals.push('chickens', 'cats', 'dogs');

console.log(animals); 
// ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]

참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/push

Array.prototype.pop()

배열에서 마지막 요소를 제거하는 메서드

const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];

console.log(plants.pop()); // "tomato"
// expected output: "tomato"

console.log(plants); //  ["broccoli", "cauliflower", "cabbage", "kale"]

plants.pop();

console.log(plants); // ["broccoli", "cauliflower", "cabbage"]

참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/pop

0개의 댓글

관련 채용 정보