khipster
@khipster

Я правильно понимаю что перебор массива для нахождения самого длинного и самого короткого элемента быстрее функции sort?

var max = arr[0].length;
var min = max;
for (var i = 1; i < arr.length; i++) {
	var length = arr[i].length;
	if (length > max) {
		max = length;
	} else if (length < min) {
		min = length;
	}
}

Т.е. мы прогоняем весь массив вычисляя длину каждого элемента. Насколько мне известно метод sort использует алгоритм быстрой сортировки, который требует больше сравнений и по идее будет медленнее. Поясню, я имею ввиду сортировку с целью нахождения самого длинного и самого короткого элемента массива, т.е. отсортировали, а потом вытащили первый и последний элементы.
  • Вопрос задан
  • 226 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Что бы найти элеемент не надо ничего сортировать. Достаточно просто пройтись по массиву. И это будет самая быстрая реализация имеющая сложность O(N).

Если же вы хотите иметь возможность работать с всегда отсортированной коллекцией, просто воспользуйтесь Min Heap.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы