Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Алгоритм "Сортировка вставками" (https://javascript.ru/forum/misc/34647-algoritm-sortirovka-vstavkami.html)

Maxim_Never 13.01.2013 19:16

Алгоритм "Сортировка вставками"
 
Привет всем! Написал алгоритм "сортировки вставками" на JS - но не могу увидеть результат его работы - т.е. отсортированный массив. В php без проблем - методу "getSort" передал ссылку на массив, а в JS я просто не знаю как можно провернуть подобное. Помогите как это можно сделать)
var _testObj = {
       // массив с данными(онли числовыми)
	numStorage : new Array(2, 34, 4, 0, 234, 5),
	
        // отдаем методу наш массив параметром
	getSort: function(data) {
		for(i=1; i>data.length; i++)
		{
			over = data[i]; // вперед идущее число массива
			
			for(j=i-1; j>=0 && data[j] > over; j--) // пост идущее
			{
				data[j+1] = data[j];
			}
			data[j+1] = over;
		}
	}
};
// метод сортирует (вроде бы), но как увидеть . .
_testObj.getSort(_testObj.numStorage);


Ну или просто помогите - как из цикла (находясь в нем) получить доступ во внешний код - т.е. рез-т работы цикла вывести в какой-ниб массив, к которому потом можно получить доступ.

JsLoveR 13.01.2013 19:32

Maxim_Never,
ошибка в условии цикла for(i=1; i>data.length; i++) 1 > 6
var _testObj = {
    numStorage : new Array(2, 34, 4, 0, 234, 5),

    getSort: function(data) {
        var i,j;
        for(i = 1; i < data.length; i++)
        {
            over = data[i]; 
             
            for(j = i-1; j >= 0 && data[j] > over; j--) 
            {
                data[j+1] = data[j];
            }
            data[j+1] = over;
        }
        //возвращаем обработанный массив
	    return data;
    }
};

alert(_testObj.getSort(_testObj.numStorage));

Maxim_Never 13.01.2013 19:42

Вот зараза же - пол дня сидел думал - а тут такое - Огромное спасибо ))

JsLoveR 13.01.2013 19:45

Maxim_Never, на здоровье)

termit92 23.06.2014 00:28

а как дальше работать с отдельными элементами массива после такой сортировки?

Aetae 23.06.2014 00:53

termit92, почитай про базовый синтаксис, там совсем не много. Спрашивая про каждый чих никуда не уедешь.

Vlasenko Fedor 23.06.2014 02:26

var arr = [2, 34, 4, 0, 234, 5];

  function sortNumber(a, b) {
    return a - b;
  }
  alert(arr.sort(sortNumber).join());
  console.log(arr.sort(sortNumber));

sort - http://javascript.ru/Array/sort


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