Сортировка массива

p0is0n

Новичок
Сортировка массива

Доброе время суток:) Встала такая задача отсортировать массив так, чтобы более похожие значения находились далеко друг от друга.

Например

PHP:
$arrs = array( 
	20, 19, 50, 10, 20, 20, 80, 81
);
в итоге получить что то типа:

PHP:
$arrs = array(
	20, 50, 19, 80, 10, 19, 80, 20 
);
может есть какой алгоритм?
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
нечетко поставлена задача. ЧТо значит "далеко"?
 

p0is0n

Новичок
varan разные значения на сколько это возможно.

Я думаю по примеру понятно?
 

Beavis

Banned
p0is0n
не понятно) у тебя разные значения в массиве..

вот как ты получил отсортированный массив? запиши действия на бумажку и переведи в операторы php )
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
почему, к примеру 20 от 20 дальше чем 80 от 80?
 

[NEO]

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

На твоем примере ты на глаз отсортировал, но если бы добавить еще 3 элемента со значениями "20", то никак бы не мог отсортировать этот массив, ни на глаз ни в пхп.

Лучше напиши всю твою задачу, с параметрами чтобы был яснее смысл во всем этом.

Автор оригинала: varan
почему, к примеру 20 от 20 дальше чем 80 от 80?
Он имеет ввиду сравнение значении чисел, а не их позиция. И это сравнение чтобы было уравновешенное считывая все элементы массива, то-есть чисел-соседи были как +/- (на батарейках =))))
 

p0is0n

Новичок
[NEO]
Мне нужно это для графика, чтобы похожие столбцы были как можно дальше друг от друга.
 

Adelf

Administrator
Команда форума
Простенькое решение в лоб - отсортировать массив. Разделить его на две половинки. и соединить как соединяют карты игральные :)

пример.

1 2 3 4 5 6

1 2 3 и 4 5 6

1 4 2 5 3 6
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
это будет заметно на графике. Надо еще добавить чуть-чуть рандома
 
Сверху