Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: Trudging along the learning perl path.

by vrk (Chaplain)
on Apr 18, 2017 at 13:05 UTC ( #1188211=note: print w/replies, xml ) Need Help??


in reply to Re: Trudging along the learning perl path.
in thread Trudging along the learning perl path.

That's cheating a bit, because it only works with arrays of nonnegative integers. The OP version works with any numeric elements (<=> comparison). Interesting angle nonetheless.

The hashless solution doesn't actually need any sorting. The following is a brute force filter, which maintains the input order of elements:

use v5.14; use warnings; sub uniq { my @u; for my $x (@_) { next if grep { $x == $_ } @u; push @u, $x; } return @u; } say join ', ', uniq(29,24,0,24,24,12,0,10,10,19,17,15,13,1,12,12,24);

It's of course asymptotically slower than sorting (O(n**2) vs O(n*log(n))), but if the input happens to be mostly duplicates, it will be faster in practice.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1188211]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (7)
As of 2019-06-17 23:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Is there a future for codeless software?



    Results (80 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!