Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Сортировка массива в JS методом пузырька (https://javascript.ru/forum/css-html/25464-sortirovka-massiva-v-js-metodom-puzyrka.html)

mikhabor2372 06.02.2012 13:09

Сортировка массива в JS методом пузырька
 
Помогите найти ошибку в коде

<html>
<script>

mas = [1,2,3,4,10,6,7,8,9,5];
for (i=0; i<=8;i++) {
m_min=m[i];
for (j=i+1; j<=9; j++) {
if (m[j] < m_min);
mm=m[i];
m_min=m[j];
m[i]=m_min;
m[j]=mm;
}

}
document.write(mas);
document.write(mmm);
document.write('sss');

</script>
</html>

Gvozd 06.02.2012 13:11

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 06.02.2012 17:29

mikhabor2372,
Ваш массив назван mas, а выборку делаите из неизвестного массива m .... после условия if (m[j] < m_min); стоит точка с запятой что заставляет работать условие в пустую ...и под конец вы пытаитесь распечатать неизвестную переменную
document.write(mmm);
Рабочий вариант для медитации ... :(
<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<body>
<script  type="text/javascript">
var m = [1, 2, 3, 4, 10, 6, 7, 8, 9, 5];
for (var i = 0; i < 9; i++) {
    var m_min = m[i];
    for (var j = i + 1; j < 10; j++) {
        if (m[j] < m_min) {
            var mm = m[i];
            m_min = m[j];
            m[i] = m_min;
            m[j] = mm;
        }
    }
}
document.write(m);
document.write(mm);
document.write('sss');
</script>
</body>
</html>

stalker77 07.02.2012 21:51

так получше на мой взгляд

var m = [1, 2, 3, 4, 10, 6, 7, 8, 9, 5];
 var count = m.length-1;
for (var i = 0; i < count; i++) 
     for (var j = 0; j < count-i; j++)
        if (m[j]> m[j+1]) {
           var max = m[j];
           m[j] = m[j+1];
           m[j+1] = max;
        }
document.write(m);


Часовой пояс GMT +3, время: 13:05.