Сортировка огромного массива данных
Есть массив величиной около 100 тысяч объектов. В каждом объекте храниться текст размером примерно 60-100 символов.
Нужно удалить все одинаковые значения. Должно получится что-то вроде этого: var a = [1, 1, 2, 3, 3, 9, 7]; myFunc(a); // return [1, 2, 3, 9, 7] |
Собственный вариант
function uniqueData(a) { var cache = []; for(var x = 0; x < a.length; x++) { if(x == 0) { cache[x] = a[x]; } else { for(var y = 0, alertDublicate = false; y < cache.length; y++) { if(cache[y] == a[x]) alertDublicate = true; if(y + 1 == cache.length && alertDublicate != true) cache.push(a[x]); }; }; }; return cache; }; uniqueData([1,2,2,3,9,9,2,5,7,8]); Первая попытка. |
вопрос -а пользователю понравиться жать каждые 30 сек на окне -сценарий не отвечает если вы хотите продолжить....no:
|
Цитата:
|
для таких целей был разработан Worker но увы он не работает в старых браузерах.
|
Цитата:
|
Цитата:
|
Цитата:
о вашем бредовом алгоритме. берётся элемент и от него ищется и удаются такие же элемента до конца массива. Затем следующий элемент и т.д. -с каждым элементом перебор всё короче. |
Цитата:
UPD: Ну да. Так и буду делать. А еще предложения будут как увеличить быстродействие? |
Цитата:
Вам уже devote подсказал в какую сторону рыть чтоб было понятнее -разделить на участки и выполнить сортировку в каждом параллельно (Worker), затем по мере прихода результатов соединять их в один и производить сортировку в нём-вариант 1 когда все будут обработаны-соединить их в один и производить сортировку в нём-вариант 2 вариант другой -разбить на участки,а их в свою очередь тоже на участки а их..... затем сортировать,собирать в обр порядке,сортировать..... |
Часовой пояс GMT +3, время: 20:32. |