001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047
// (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; }