Suren97 Ответов: 2

Javascript: как отсортировать массив по рекурсивной функции


Мне нужно отсортировать массив с помощью рекурсивной функции.Если это sortedthen она должна возвращать true, иначе возвращает значение false.

Что я уже пробовал:

Я уже пробовал вот так`

function sort(x, i=0){
	if(i == x.length){
		return x;
	}
		if(x[i-1] > x[i]){
        var tmp = x[i - 1];
        x[i - 1] = x[i];
        x[i] = tmp;
	}
	return sort(x, i+1);
}
console.log(sort([2,5,100,6,85,12,45]));

2 Ответов

Рейтинг:
1

Patrice T

Цитата:
Мне нужно отсортировать массив с помощью рекурсивной функции.Если он отсортирован, то он должен вернуть true, в противном случае должен вернуть false.

Просто это утверждение не имеет никакого смысла !
Функция сортировки возвращает сортированный массив, и ничего больше.
Какое бы решение вы ни выбрали, вам нужно выбрать алгоритм, а затем перевести его в код. Рекурсивность не обязательна, это ваш выбор.

Мы не делаем вашу домашнюю работу.
Домашние задания-это упрощенные версии тех задач, которые вам придется решать в реальной жизни. цель это обучение и практикующий Помощь, которую вы хотите получить, похожа на попытку побить олимпийский рекорд, заставив кого-то другого тренироваться за вас, потому что вы новичок .

Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.


Рейтинг:
0

Richard Deeming

Если это подлинный вопрос, то используйте Array.prototype.sort() - JavaScript | MDN[^]

Если это домашнее задание или вопрос для интервью, то вам нужно будет провести собственное исследование. (Вы также захотите начать с более случайного массива чисел, чтобы увидеть, где ваш предлагаемый алгоритм падает.) Википедия имеет хороший список самых популярных алгоритмов сортировки[^] чтобы вы начали.


Suren97

Пожалуйста, помогите мне, если можете, я не очень хорошо говорю по-английски и не могу понять, когда читаю его

Richard Deeming

Если это домашнее задание или вопрос для собеседования, то ты нужно придумать решение.

Если это не домашнее задание или вопрос интервью, то используйте встроенный метод:

console.log([2,5,100,6,85,12,45].sort(function(x,y){return x-y;}));

Suren97

Это домашнее задание, ты не можешь мне помочь, братан?

Richard Deeming

Ссылка на Википедию в моем ответе перечисляет наиболее популярные алгоритмы сортировки со ссылками на дополнительную информацию.

То, что у вас есть до сих пор, выглядит как неполная версия Пузырьковая сортировка[^].

Suren97

Я изменил свое решение, вы можете посмотреть, но оно снова возвращается неправильно :(

Richard Deeming

Как я уже сказал, Это похоже на неполный пузырь.

Suren97

Я читаю его, но не могу понять смысла. :(

Suren97

я могу сортировать его с помощью цикла, но не могу с помощью рекурсивной функции

Richard Deeming

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

Он, вероятно, основан на темах, которые вы недавно рассмотрели на своих уроках.

Если вы действительно не знаете, с чего начать, то поговорите со своим учителем.

Suren97

хорошо, спасибо :)

Suren97

Могу ли я использовать функцию сортировки в спасательной функции?