|
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
Разбить массив на пары из элементов
Здравствуйте, имеется массив элементов и нужно разбить их на пары со всеми возможными комбинациями.
Например, имеем массив из 1, 2, 3. Получим пары: 1:2, 1:3, 2:3 Если есть пара 1:2, то добавлять пару 2:1 не нужно. Хотелось бы найти самый эффективный алгоритм. |
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
PlutDem, из описания понятно что в массиве элементы в произвольном порядке и могут повторяться. а то и вообще не числа.
если элементы - объекты и возможны повторы, то задача n^2 + n. если числа - n*log(n) + n если заранее отсортированно - n тебе какой вариант? пс. тестовые задания надо самому выполнять |
|
|||||
Регистрация: Feb 2012
Сообщений: 212
|
Что представляют собой элементы значения не имеет, а повторы не уместны.
|
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
var arr:Array = [1, 4, 2, 3]; var result:Array = []; for(var i:uint = 0; i < arr.length; i++){ for(var j:uint = i + 1; j < arr.length; j++){ result.push([arr[i], arr[j]]); } } trace(result.join(" | ")); // "1,4 | 1,2 | 1,3 | 4,2 | 4,3 | 2,3" Цитата:
если повторы будут - то для чисел алгоритм будет работать быстрее чем для объектов. так же можно найти длину результата заранее. Последний раз редактировалось nubideus; 13.10.2014 в 17:57. |
Часовой пояс GMT +4, время: 11:25. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|