|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Pavel P 2:5020/400 10 Oct 2002 06:37:40 To : Vovanius Uryvaeff Subject : Re: Алгоритм -------------------------------------------------------------------------------- "Vovanius Uryvaeff" <micro-s@vniiofi.ru> wrote in message [....] > PP> //--- CUT ------------------------------------------------- > PP> find_Duplicates arr = find_item_y 0 arr ((limit o sort o flatten) arr) > PP> where > PP> find_item_y _ [] _ = [] > PP> find_item_y y [h:t] z = find_item_x y 0 h z ++ find_item_y (y + 1) > PP> t z > > PP> find_item_x _ _ [] _ = [] > PP> find_item_x y x [h:t] z = (if (h == z) [(x,y)] []) ++ find_item_x y > PP> (x + 1) t z > > PP> Start = find_Duplicates arr > PP> where > PP> arr = [[1, 2, 3, 4], [5, 6, 7, 8], [11, 10, 9, 11]] > > Компактней надо! И будет совсем просто! > : Find.Dups ( a n m - ) LOCAL| A M E | > DUP TO M * OVER TO A OVER + SWAP OVER TO E > DO E I CELL+ ?DO > I @ J @ = IF I A - M /MOD SWAP . . J A - M /MOD SWAP. . CR THEN > LOOP LOOP ; > CREATE arr 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 11 , 10 , 9 , 11 , > arr 4 3 FindDups > :) Это намного хуже как по читаемости так и по функциональности, при том же количестве строк. Твой пример не будет работать для записи непрямоугольного массива типа 1 2 3 4 5 6 7 8 6 Что вернет твой алгоритм? Ты его вызвать сможешь? Мой вернет - (2,2) (0,4) :) B.R. Pavel --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/65771bc94318.html, оценка из 5, голосов 10
|