소스 파일 : /algorithm/search(linear,binary).js (2021-03-01)     소스 설명 : (알고리즘) 검색 (선형검색, 이진검색)
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
// (2021.1.27, 차재복, Cha Jae Bok, http://www.ktword.co.kr)

// 검색(선형,이진) 입출력 (무작위 숫자 생성, ...)
function showSearchAlgorithm(that) {
    // 입력 키 확인 및 입력 값 추출
    if(that.nodeName=='INPUT' && window.event.keyCode != 13) return;
    let n = ( that.nodeName=='INPUT' ? that.value : that.previousElementSibling.value );
    // 정수 변환
    n = Number.parseInt(n);
    // 검증
    if(!Number.isInteger(n) || n < 2) { alert('정수 (1<n<100) 입력'); return; }

    let outText = '입력 정수 : '+n+'\n';

    // 검색 샘플용 무작위 숫자 : (0 ~ 100) 사이에서 20개 생성 
    let array = [];
    for (let i = 0; i < 20; ++i) {
        array[i] = Math.floor(Math.random() * 101);
    }

    outText += '대상 배열 : ';
    for(index in array) outText += array[index] + ' ';

    // 선형검색 호출 및 출력
    let findIdx = linearSearch(array,n);

    outText += '\n(선형검색) ';
    if (findIdx) outText += '찾은 정수 : '+array[findIdx]+' ('+(findIdx+1)+'번째)'; 
    else outText += '못찾음!';
    
    alert(outText);
}

// 선형 검색
function linearSearch(array, n) {
    for(let i=0; i<array.length; i++) {
        if (array[i]==n) return i;
    }
    return false;
}

// 이진 검색
function binarySearch(array, n) {
    // ... 작성중 ...
    return -1;
}


Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"