Алгоритм перестановки с использованием хвостовой рекурсии?
От: avpavlov  
Дата: 12.02.09 15:30
Оценка:
Не силён я в сферических алгоритмах, так что не знаю, существует ли такой? Своим умом допёр только до обычного рекурсивного

def permutations[T](list:List[T]):List[List[T]] = list match {
  case List() => List()
  сase List(a) => List(List(a))
  case _ => list.flatMap(item => permutations(list.filter(_ != item)).map(permutation => item :: permutation))
}

println(permutations(List(1,2,3,4)).mkString("\n"))


Киньте ссылку, где почитать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.