Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Говнокод)) Сортировка пузырьком. (https://javascript.ru/forum/project/41883-govnokod-sortirovka-puzyrkom.html)

Lorines 02.10.2013 20:46

Говнокод)) Сортировка пузырьком.
 
Помогите с программой, сортировка массива "пузырьком") Не хочет работать, зависает при вводе массива. Нужно ввести, отсортировать по возрастанию, вывести массив и количество операций в цикле, где сама сортировка)

<script>
var SizeMass = +prompt("Размер массива","");
var i;
mas = new Array();

for (i=1; i!=SizeMass; i++) {							
  mas[i] = +prompt("Введите элемент массива","");
  i++;
}

var k = 0; a = 0;

for (i=1; i!=SizeMass-1; i++) {
  for (j=1; i!=SizeMass-i; j++) {
    

    if (mas[j] > mas[j+1]) {
      a = mas[j];
      k++;
      
      mas[j] = mas[j+1];
      k++;
      
      mas[j+1] = a;
      k++;	  
    }  
  }
} 

for (i=1; i!=SizeMass; i++) {
  alert(mas[i]); 
}
 
alert("Количество операций в цикле");
alert(k);

</script>

рони 02.10.2013 21:04

Lorines,
строка 14 ересь - i везде не 0 - к в игре неучавствует

BETEPAH 02.10.2013 23:45

алертами замучаете, если код заработает

Mkaa 03.10.2013 01:23

<html>
<head>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>

<script>
function rand( min, max ) {
	if( max ) {
		return Math.floor(Math.random() * (max - min + 1)) + min;
	} else {
		return Math.floor(Math.random() * (min + 1));
	}
}
$(document).ready(
function()
{
	var count=0;
	var x=0;//Запоминает число
	var ar=[];//Неотсортированный массив
	var i=0;
	var j=0;//Счетчики
	var array="";
	var result="";
	var visual="";
	///Создаем рандомный массив.
	for(i=0;i<15;i++)
	{
		ar[i]=rand(1,100);
		
		array+=ar[i]+'|';
	}
	console.log(ar);
	$('.console').html('Данный массив:<br/><b>'+array+'</b>');//Вывод на экран массива
	while(j<15)//Сортируем. Выход, когда массив закончится. Длина 40.
	{
	count++;
		while(i<14)
		{
			count++;
			if(ar[i]>=ar[i+1])
			{
				visual+='---------------<br/>';
				visual+='<b>'+ar[i]+'</b> >= '+ar[i+1]+'<br/>';
				visual+='Меняем местами<br/>';
				
				x=ar[i];
				ar[i]=ar[i+1];
				ar[i+1]=x;
				for(t=0;t<15;t++)
				{
					if(ar[t]==x)
					{
						visual+='<b>'+ar[t]+'</b>'+'|';
					}
					else
					{
						visual+=ar[t]+'|';
					}
				}
				visual+='<br/>';
			}
			else{
				visual+='---------------<br/>';
				visual+='<b>'+ar[i]+'</b> < '+ar[i+1]+'<br/>';
				visual+='Не меняем<br/>';
				for(t=0;t<15;t++)
				{
					if(ar[t]==ar[i])
					{
						visual+='<b>'+ar[t]+'</b>'+'|';
					}
					else
					{
						visual+=ar[t]+'|';
					}
				}
				visual+='<br/>';
			}
			i+=1;
		}
		$('.vis').html(visual);
		i=0;
		j++;	
		
	}
	for(j=0;j<15;j++)
	{
		result+=ar[j]+'|';
	}
	$('.result').html('Результат: <br/><b>'+result+'</b><br/>Количество проверок: '+count);
	
}


);
</script>
<div class="start"><b>Реализовать метод сортировки с помощью прямого обмена</b><br/></div>
<div class="result" style="position:absolute;left:50%">2</div>
<div class="console">1</div>
<div class="vis">3</div>

</body>
</html>

C визуализацией=)


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