@ukh

Как определить оценку сложности алгоритма?

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

1) isSorted :: (Ord a) => (a->a->Bool) -> [a] -> Bool isSorted
cmp xs = and (zipWith cmp xs (tail xs))

2) mult :: Integer -> Integer -> Integer mult n 0 = 0
mult n m = mult n (m-1) + n

3) russMult :: Integer -> Integer -> Integer
russMult n 0 = 0
russMult n m | (mod m 2)==0 = russMult (n+n) (div m 2)
| otherwise = russMult (n+n) (div m 2) + n
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 1
myjcom
@myjcom
много читал по этой теме


В хаскеле все просто
isSorted :: (Ord a) => (a -> a -> Bool) -> [a] -> Bool
isSorted cmp xs = and (zipWith cmp xs (tail xs))

cp :: Int -> Int -> Bool
cp x y = x <= y

main = print (isSorted cp [1,2,7,4,5]) -- False

main = print (isSorted cp [1,2,3,4,5]) -- True
Ответ написан
Ваш ответ на вопрос

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

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