[ Date Index ][
Thread Index ]
[ <= Previous by date / thread ] [ Next by date / thread => ]
Simon Waters wrote: > > $numerical = array_flip($alphabet); > > ksort($numerical); > > I think you are using too many associative arrays, but I could be wrong. Me too. > A common approach to sorting, is to skip it and just return an index of > the values. > > i.e. All we need in this circumstance is an array (non associative) > myindex with values "3","1","0",2" so we can refer to > alphabet[myindex[0]] and get the first value, alphabet[myindex[1]] to > get the second. We don't need any hashes as provided by associative > arrays as far as I can see? > > #!/usr/local/bin/perl > my @alphabet = ( "562389856", "123521623" , "898234234", "002342444" ); > print "@alphabet \n" ; > my @myindex = sort { $alphabet[$a] <=> $alphabet[$b] } 0 .. $#alphabet ; > print "@myindex \n" ; > print "@alphabet[@myindex]\n"; > > > Whether perl actually implements this efficiently underneath is another > question entirely. > > I plead I'm a total Perl newbie, but I think that there is no need for > associative arrays here, and that for large amounts of data it is better > not to use them (any comp. sci. graduates going to explain if I'm wrong > ?). All bets are off if there are large numbers of duplicates, and I > know nothing of PHP. > > The Perl documents "Far more than you've ever wanted to know about" > explain this very well in sort.html, although I've no idea if I > understood all of it. > > > Can Perl/Python/Java/etc. do the same job in less code??? > > :-) > > I dare say some perl line noise would implement array_flip using "map", > or some bizarre perl array notation in one line, however I don't > subscribe to the view that brevity of code is always the deciding factor > ;-) We could always make it a subroutine, call it "flip" and do it in 6 > characters less ;-) > > I better be careful as the gentleman who taught me all about algorithmns > is probably reading and despairing about how much I've forgotten. > > Simon, whose knowledge on sorting and indexing is rank. > -----BEGIN PGP SIGNATURE----- > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQE/YbfoGFXfHI9FVgYRAkWOAJ9EO1V3MTVD50JhZwZyptfNBf8xmACdG6mh > Kf2lO4i+2DEJss7Z6Jo57v8= > =Oya+ > -----END PGP SIGNATURE----- > > -- > The Mailing List for the Devon & Cornwall LUG > Mail majordomo@xxxxxxxxxxxx with "unsubscribe list" in the > message body to unsubscribe. > -- The Mailing List for the Devon & Cornwall LUG Mail majordomo@xxxxxxxxxxxx with "unsubscribe list" in the message body to unsubscribe.