2017-02-23 1 views
-1

내 HW 할당을 사용하려면 사용자가 정수를 입력해야하며 정렬 방법없이 정렬 된 배열의 HTML에서 나올 수 있어야합니다. 나는이 코드를 가지고 있으며 사용자 입력을 요구하지만 정수는 페이지에 나타나지 않는다. 배열을 정렬하고 HTML 페이지에 표시하는 데 도움이 필요합니다.

<script type="text/javascript"> 
 
    var arr = []; 
 

 
    function addNum() { 
 
    var n = prompt("How many integrs?", "0"); 
 
    \t var num = parseInt(n); 
 
    \t for (var i = 0; i < num; i++) { 
 
    \t arr[i] = parseInt(prompt("Enter next integer: ","0")); 
 
    } 
 

 
    var outputSorted = document.getElementById('outputSorted'); 
 
    outputSorted = ""; 
 
    outputSorted.append("Input array : \t \t "); 
 
    
 
    for (var i = 0; i < num; i++) { 
 
    \t outputSorted.append(arr[i]+" \t "); 
 
    } 
 
    \t 
 
    bubbleSort(arr); 
 
    \t outputSorted.append("Sorted array : \t \t "); 
 
    \t \t \t 
 
    for (var i = 0; i < num; i++) { 
 
    \t outputSorted.append(arr[i]+" \t "); 
 
    } 
 
    } 
 

 
    function bubbleSort(a) { 
 
    var swapped; 
 
    
 
    do { 
 
     swapped = false; 
 
     for (var i=0; i < a.length - 1; i++) { 
 
\t  if (a[i] > a[i+1]) { 
 
\t  var temp = a[i]; 
 
\t  a[i] = a[i+1]; 
 
\t  a[i+1] = temp; 
 
\t  swapped = true; 
 
     } 
 
     } 
 
    } while (swapped); 
 
    } 
 

 
    function searchNum() { 
 
    var m = parseInt(prompt("Enter num to be searched: ","0")); 
 
\t var found = binarySearch(arr, m); 
 
\t var outputSearch = document.getElementById('outputSearch'); 
 
\t 
 
    if (found == -1) { 
 
\t outputSearch.append("Number not found"); 
 
\t } else { 
 
\t outputSearch.append("Number found at index : " + (found + 1)); 
 
    } 
 
    } 
 

 
    function binarySearch(array, targetValue) { 
 
    var min = 0; 
 
    var max = array.length - 1; 
 
    var guess; 
 

 
    while (min <= max) { 
 
     guess = Math.floor((max + min)/2); 
 

 
     if (array[guess] === targetValue) { 
 
     return guess; 
 
     } 
 
     else if (array[guess] < targetValue) { 
 
     min = guess + 1; 
 
     } 
 
     else { 
 
     max = guess - 1; 
 
     } 
 
    } 
 
    return -1; 
 
    } 
 
</script>

+0

당신이 사용할 수있는'을 console.log()'및 디버깅을위한 브라우저에서 개발자 도구 :). https://www.w3schools.com/js/js_output.asp –

+0

또한 여기 아마'outputSorted = "";'당신은'outputSorted.innerHTML = ""'을 의미했습니다. –

답변

0

outputSorted는 DOM 요소이고, 추가()이 요소의 함수가 아니다. 그 대신, 추가 할 각 비트마다 innerHTML + =을 사용하십시오. 아래를 참조하십시오. 그리고 이것들은 제가 만든 유일한 변화입니다. 그래서 못생긴 렌더링 된 HTML이 그 것이다.

var arr = []; 
 

 
    addNum = function addNum() { 
 
    var n = prompt("How many integrs?", "0"); 
 
    var num = parseInt(n); 
 
    for (var i = 0; i < num; i++) { 
 
     arr[i] = parseInt(prompt("Enter next integer: ", "0")); 
 
    } 
 

 
    var outputSorted = document.getElementById('outputSorted'); 
 
    outputSorted.innerHTML += "Input array : \t \t " 
 

 
    for (var i = 0; i < num; i++) { 
 
     outputSorted.innerHTML += arr[i] + " \t "; 
 
    } 
 

 
    bubbleSort(arr); 
 
    outputSorted.innerHTML += "Sorted array : \t \t "; 
 

 
    for (var i = 0; i < num; i++) { 
 
     outputSorted.innerHTML += arr[i] + " \t "; 
 
    } 
 
    } 
 

 
    function bubbleSort(a) { 
 
    var swapped; 
 

 
    do { 
 
     swapped = false; 
 
     for (var i = 0; i < a.length - 1; i++) { 
 
     if (a[i] > a[i + 1]) { 
 
      var temp = a[i]; 
 
      a[i] = a[i + 1]; 
 
      a[i + 1] = temp; 
 
      swapped = true; 
 
     } 
 
     } 
 
    } while (swapped); 
 
    } 
 

 
    function searchNum() { 
 
    var m = parseInt(prompt("Enter num to be searched: ", "0")); 
 
    var found = binarySearch(arr, m); 
 
    var outputSearch = document.getElementById('outputSearch'); 
 

 
    if (found == -1) { 
 
     outputSearch.innerHTML += ("Number not found"); 
 
    } else { 
 
     outputSearch.innerHTML += ("Number found at index : " + (found + 1)); 
 
    } 
 
    } 
 

 
    function binarySearch(array, targetValue) { 
 
    var min = 0; 
 
    var max = array.length - 1; 
 
    var guess; 
 

 
    while (min <= max) { 
 
     guess = Math.floor((max + min)/2); 
 

 
     if (array[guess] === targetValue) { 
 
     return guess; 
 
     } else if (array[guess] < targetValue) { 
 
     min = guess + 1; 
 
     } else { 
 
     max = guess - 1; 
 
     } 
 
    } 
 
    return -1; 
 
    }
<button onclick="addNum()"> 
 
Add some! 
 
</button> 
 
<div id="outputSorted"> 
 

 
</div> 
 
<div id="outputSearch"> 
 

 
</div>