Уважение 0с при сортировке - PullRequest
0 голосов
/ 24 апреля 2019

Эти 3 числа (10000, 11000, 9000) отсортированы в неправильном порядке.Они должны разрешить до 9000, 10000, 11000.

Здесь - это код w3, на который я ссылаюсь:

Есть ли способ переписать это для работы с целыми числами

Ответы [ 4 ]

0 голосов
/ 24 апреля 2019
var a = 0
for(var i = 0; i < numbers; i++){
    if(numbers[i] > numbers[i+1]){
        a = numbers[i+1];
        numbers[i+1] = numbers[i];
        numbers[i] = a;
    }
}

Это называется сортировкой пузырьком или сортировкой с вставкой

0 голосов
/ 24 апреля 2019

Вы можете использовать функцию Array.prototype.sort:

var test = [3,5,7,2,3,1];
console.log(test.sort());
//result : [1, 2, 3, 3, 5, 7]

//for descending
console.log(test.sort((a,b) => b-a));
//result : [7, 5, 3, 3, 2, 1]
0 голосов
/ 24 апреля 2019

Вы можете удалить .toLowerCase () и обернуть чек в parseInt (), и он будет работать с предоставленным вами кодом:

<!DOCTYPE html>
<html>
<title>Sort a HTML List Alphabetically</title>
<body>

<p>Click the button to sort the list alphabetically:</p>
<button onclick="sortList()">Sort</button>

<ul id="id01">
  <li>10000</li>
  <li>11000</li>
  <li>9000</li>
  <li>12</li>
  <li>1</li>
</ul>

<script>
function sortList() {
  var list, i, switching, b, shouldSwitch;
  list = document.getElementById("id01");
  switching = true;
  /* Make a loop that will continue until
  no switching has been done: */
  while (switching) {
    // start by saying: no switching is done:
    switching = false;
    b = list.getElementsByTagName("LI");
    // Loop through all list-items:
    for (i = 0; i < (b.length - 1); i++) {
      // start by saying there should be no switching:
      shouldSwitch = false;
      /* check if the next item should
      switch place with the current item: */
      if (parseInt(b[i].innerHTML) > parseInt(b[i + 1].innerHTML)) {
        /* if next item is alphabetically
        lower than current item, mark as a switch
        and break the loop: */
        shouldSwitch = true;
        break;
      }
    }
    if (shouldSwitch) {
      /* If a switch has been marked, make the switch
      and mark the switch as done: */
      b[i].parentNode.insertBefore(b[i + 1], b[i]);
      switching = true;
    }
  }
}
</script>

</body>
</html>
0 голосов
/ 24 апреля 2019

Пузырь, вроде как на помощь !!

function bubble_Sort(a)
{
    var swapp;
    var n = a.length-1;
    var x=a;
    do {
        swapp = false;
        for (var i=0; i < n; i++)
        {
            if (x[i] > x[i+1])
            {
               var temp = x[i];
               x[i] = x[i+1];
               x[i+1] = temp;
               swapp = true;
            }
        }
        n--;
    } while (swapp);
 return x; 
}

console.log(bubble_sort([10000, 11000, 9000]));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...