algorithm - 검색 알고리즘

김린네·2022년 2월 20일

//그냥 index 를 뽑아라 근데 sort 를 사용해서 빠르게 하는 방식일뿐; 
var index = 0;
const binarySearch = function (arr1, iindex) {
    var point_f = 0;
    var point_s = arr1.length - 1;
    var mid = Math.ceil(arr1.length / 2);

    if (arr1[mid] > iindex) {
        arr1.splice(mid);
    }

    else if (arr1[mid] < iindex) {
        arr1.splice(0, mid);
        index += mid;
        console.log(arr1)

    }
    else if (arr1[mid] == iindex) {
        index += arr1.length - 1;
        console.log(index);
        index = 0;
        return;


    }

    else if (arr1[point_f] == iindex) {

        console.log(index);
        return;

    }
    else if (arr1[point_s] == iindex) {
        index += 1;
        console.log(index);
        return;

    }

    return binarySearch(arr1, iindex);


}
binarySearch([1, 2, 3, 4, 5], 2);
binarySearch([1, 2, 3, 4, 5], 3);
binarySearch([1, 2, 3, 4, 5], 5);
binarySearch([5, 6, 10, 13, 14, 18, 30, 34, 35, 37, 40, 44, 64, 79, 84, 86, 95, 96, 98, 99], 10);
binarySearch([5, 6, 10, 13, 14, 18, 30, 34, 35, 37, 40, 44, 64, 79, 84, 86, 95, 96, 98, 99], 95);
//binarySearch([1, 2, 3, 4, 5], 6);

선택 정렬

//선택 정렬=>그냥 나는 재귀 할래용

const selection_arr = function (arr) {

const result_arr = [];
var num = 0;
var length_arr = arr.length;
const recursion_arr = function (arr1, num1, final_number) {
    if (num1 == final_number) {

        return;
    }

    console.log(num1);
    var length_arr = arr1.length;
    // var start = 0; //index first number 바뀌지는 않고
    var min = arr1[num1];
    for (var i = num1 + 1; i < length_arr; i++) {
        if (arr1[i] < min) {
            min = arr1[i];

        }
    }
    console.log(min);
    var number = arr1.indexOf(min);
    var chnage_num = 0;
    chnage_num = arr1[num1];
    arr1[num1] = arr1[number];
    arr1[number] = chnage_num;

    console.log(arr1);
    num1 = num1 + 1;
    return recursion_arr(arr1, num1, final_number);


}

recursion_arr(arr, num, length_arr);

}

selection_arr([19, 44, 38, 5, 47, 15])

삽입정렬

//선택 정렬=>그냥 나는 재귀 할래용

const selection_arr = function (arr) {

//귀찮으니까 내충 그뭐냐 빠른 코딩 ㅎㅎ
var num = 1;
var num_max = arr.length;

const new_arr = function (arr, num, num_max) {

    if (num == num_max) {
        return new_arrr;

    }
    var arr_1 = arr.slice(0, num + 1);
    var arr_2 = arr.slice(num + 1);
    var index = 0;
    // 지금 i 가 이동하는 식으로 되어 있잖아?
    var cc = 0;
    for (var i = num; i > 0; i--) {
        if (arr_1[num] < arr_1[i]) {
            index = i;

            cc = 1;


        }


    }
    if (cc == 1) {
        var not_change = arr_1[num];

        arr_1.splice(index, 0, not_change);

        arr_1.splice(num + 1, 1);




    }

    var new_arrr = arr_1.concat(arr_2);

    num = num + 1;

    console.log(new_arrr);

    return new_arr(new_arrr, num, num_max);

}
new_arr(arr, num, num_max)

}

selection_arr([3, 44, 38, 5, 47, 15])

답!

profile
디자인 > https://dribbble.com/jongpil_77 코딩 > https://www.codewars.com/users/bikijjang

0개의 댓글