需要帮助排序数组并在HTML页面上显示它

时间:2017-02-23 19:46:37

标签: javascript arrays sorting integer

我的硬件分配要求我让用户输入整数,并在没有排序方法的情况下在排序数组中输出HTML。我有这个代码,它询问用户输入,但整数不会出现在页面上。

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

  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 = "";
    outputSorted.append("Input array :		");
  
    for (var i = 0; i < num; i++) {
 	  outputSorted.append(arr[i]+"	");
    }
 	
    bubbleSort(arr);
 	outputSorted.append("Sorted array :		");
 			
    for (var i = 0; i < num; i++) {
 	  outputSorted.append(arr[i]+"	");
    }
  }

  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.append("Number not found");
	} else {
	  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 个答案:

没有答案