|
|||||||||||||||||||||||||||
Jørgen Altmann <sslug@sslug> writes:
> Hej Peter
>
> Dette er èn af de mange løsningsforslag:
>
> $test = -3;
> $antal = 0;
> @str = split(' ',$str);
> foreach(@str){ $antal += ($_ > $test) };
Det var dog et umådeligt langsomt[1] forslag. Når man ved listen er sorteret
er der da ingen grund til at undersøge om hver eneste tal er større end
grænsen.
Henrik
[1] Okay, vi kan godt blive enige om at split sikrer at køretiden altid bliver
O(n), og at vi næppe kan undgå et split (med mindre vi får ekstremt mange
oplysninger om tallene). Men det skal altså ikke være nogen grund til at vælge
en O(n) løsning for resten af opgaven, når det nu kan gøres i O(log n).
--
Henrik Grove --- sslug@sslug --- http://www.diku.dk/students/grove/
----------------------------------------------------------------------
Linux overalt! - og det kan kun gå for langsomt!
|
||||||||||||||
|
||||||||||||||