Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите пожалуйста почему срабатывает только один цикл! (https://javascript.ru/forum/misc/36248-podskazhite-pozhalujjsta-pochemu-srabatyvaet-tolko-odin-cikl.html)

alexes222 09.03.2013 00:39

Подскажите пожалуйста почему срабатывает только один цикл!
 
<script language="javascript">
var x = prompt("Введите разрядность массива");
var m=new Array();
for (i=0; i< x; ++i)
{m[i]=Math.round(Math.random()*100);}

for (i=0; i<x; ++i)
document.write(" " + m[i]);
var min = m[0];
var k = 0;
var y = 0;
var obmen = 0;
for (j = 0; j < x; ++j){
for (i = y; i < x; ++i){
if (min > m [i])
{min = m [i];
k = i;
obmen = m [y];
m[k] = obmen;
m[y] = min;
}
}
}

document.write(" <br>");
document.write(min +" "+ k);
document.write(" <br>");
for (i=0; i<x; ++i)
document.write(" " + m[i]);
</script>

предполагается сортировка рандомного массива. Только начинаю сильно не ругайтесь. Не надо пожалуйста готовых решений, просто подскажите, где я не прав. Заранее спасибо!

_SR_71_ 09.03.2013 01:38

Если бы вы поподробней описали алгоритм вашей сортировки, а то въехать в него очень сложно. Но сразу видно кучу ненужных действий. Ну по поводу k понятно - это номер наименьшего элемента и то из неотсортированного массива. Но зачем объявлять y? Вы присваиваете ему ноль, а затем в цикле его не меняете. Затем, зачем цикл по j, если j тоже в цикле не используется?
Могу предложить алгоритм сортировки:
первый цикл, скажем по j идет от первого до последнего элемента, а во втором, вложенном в него, по i сравнивает с элементами справа от него и если нужно меняет.

alexes222 10.03.2013 17:31

Просто экспериментировал, поэтому и много мусора. За совет спасибо!


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