@EroticDeer

Как склеить массивы в рекурсивной функции?

Пишу алгоритм быстрой сортировки. Сделал разбиение на опорный элемент, массив из меньших и больших элементов. Никак не могу понять в кокой момент нужно совершать выход из рекурсии и как при этом "склеить" массивы

let mas = [
	1,
	5,
	3,
	2,
	0,
	8
];

function separation(arr) {
	if (arr.length < 2) {
		return console.log(arr);
	} else {
		let average = Math.floor((arr.length - 1) / 2);
		let left = [];
		let right = [];
		let center;
		for (let i = 0; i < arr.length; i++) {
			if (arr[i] < arr[average]) {
				left.push(arr[i]);
			} else if (arr[i] == arr[average]) {
				center = arr[i];
			} else {
				right.push(arr[i]);
			}
		}
		console.log(left, center, right);
		separation(left);
		separation(right);
	}
}

separation(mas);


https://codepen.io/EroticDeer/pen/KKKagqV?editors=1111
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы