Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sortiranje...??

[es] :: Perl :: Sortiranje...??

[ Pregleda: 2913 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

niksa
Srbija

Član broj: 12103
Poruke: 24
*.teol.net



Profil

icon Sortiranje...??13.07.2003. u 14:26 - pre 252 meseci
Pozdrav svima,
relativno sam nov u programiranju u ovom programskom jeziku pa sam naisao na jedan glup problem, a to je sortiranje podataka koje procitam iz tekstualne baze podataka, znaci ja podatke cuvam na serveru npr. u fajlu baza.db, a oni su tipa:
nesto|nesto1|nesto2|nesto3|....
nesto|nesto1|nesto2|nesto3|....
nesto|nesto1|nesto2|nesto3|....
nesto|nesto1|nesto2|nesto3|....
nesto|nesto1|nesto2|nesto3|....

e sada, ja znam kako da sve sortiram na osnovu prvog podatka iz baze tj. u ovom slucaju na osnovu podatka "nesto":
Smjestim sve podatke u npr. @podaci, a zatim to sortiram na sledeci nacin:
@podaci = sort {$a <=> $b} @podaci; ako su u pitanju brojevi ili koristim cmp ako su u pitanju slova....

Ali, da li postoji neki nacin da izvrsim isto ovo sortiranje, ali na osnovu npr. podataka "nesto1" ili "nesto2"??? Ovo me interesuje i bas muci!!!
Nadam se da ce mi neko pomoci!!
HVALA UNAPRIJED!
 
Odgovor na temu

MrYoo

Član broj: 30
Poruke: 198
*.37.EUnet.yu

ICQ: 47188818


Profil

icon Re: Sortiranje...??13.07.2003. u 23:51 - pre 252 meseci

Naravno da moze ubacis sve podatke koje zelis u neki novi array i opet sortiras na nacin na koji si to vec radio. E sada ako zeli da sortiras po prvoj koloni recimo a da ne izmesas sadrzaj oda prvu kolonu izloujes pa sortiras i onda uporedjivanjem prikljucis ostale podatke. Ovo je malo prostia varijanta ali radi ako zeli nesto advance ondaa koristi references.
 
Odgovor na temu

mpapec

Član broj: 9198
Poruke: 45
*.globalnet.hr



Profil

icon Re: Sortiranje...??15.07.2003. u 14:07 - pre 252 meseci
Citat:
niksa:
Ali, da li postoji neki nacin da izvrsim isto ovo sortiranje, ali na osnovu npr. podataka "nesto1" ili "nesto2"??? Ovo me interesuje i bas muci!!!
Nadam se da ce mi neko pomoci!!
HVALA UNAPRIJED!


Najefikasnije sortiranje za takve potrebe je tzv. schwartzian transform
ako te zanima kako funkcionira, imas sve na,
http://www.pobox.com/~japhy/docs/sorting.html


#!/usr/bin/perl

use strict;
use warnings;

my $str = q{nesto|nesto1|nesto2|nesto3|....
nesto|nesto1|nesto2|nesto3|....
nesto|nesto1|nesto9|nesto3|....
nesto|nesto1|nesto7|nesto3|....
nesto|nesto1|nesto5|nesto3|....
};

my @sorted = SSort(source => \$str, byfield => 2, spliton => '\|');
print join "\n", @sorted;
print "\n\n";

@sorted = SSort(
source => \$str,
byfield => 2,
spliton => '\|',
ssub => sub { $b->[1] cmp $a->[1] }
);
print join "\n", @sorted;
print "\n\n";


sub SSort {
######################################
#
# schwartz. sort
#
######################################

my %arg = @_;
my($source, $byfield, $spliton, $ssub) = @arg{qw/source byfield spliton ssub/};

#default cmp sort
if (!$ssub) { $ssub = sub { $a->[1] cmp $b->[1] } }
elsif ($ssub eq 'num') { $ssub = sub{ $a->[1] <=> $b->[1]} }

#default || separator
$spliton = $spliton ? qr/$spliton/ : qr/\Q||/;

#scalar ref?
if (ref $source eq 'SCALAR') { $source = [split /\n+/, $$source] }
return
map $_->[0],
sort $ssub
map [ $_, (split /$spliton/)[$byfield] ], @$source;
}
 
Odgovor na temu

MrYoo

Član broj: 30
Poruke: 198
*.221.EUnet.yu

ICQ: 47188818


Profil

icon Re: Sortiranje...??16.07.2003. u 13:23 - pre 252 meseci

Sortiranje je jako vazna stvar zabavi se malo sam jer bi to trebalo da znas, a i odlicno je za vezbanje rada sa nizovima.


Pozdrav.
 
Odgovor na temu

mpapec

Član broj: 9198
Poruke: 45
*.globalnet.hr



Profil

icon Re: Sortiranje...??16.07.2003. u 14:39 - pre 252 meseci
Vec sam se pozabavio, zato mi i ne predstavlja problem.
 
Odgovor na temu

MrYoo

Član broj: 30
Poruke: 198
*.yubc.net

ICQ: 47188818


Profil

icon Re: Sortiranje...??16.07.2003. u 23:47 - pre 252 meseci

Za tebe vidim ono je bilo upuceno pokretacu teme kao preporuka.
 
Odgovor na temu

niksa
Srbija

Član broj: 12103
Poruke: 24
*.teol.net



Profil

icon Re: Sortiranje...??17.07.2003. u 14:55 - pre 252 meseci
OK. Hvala vam svima na pomoci...
 
Odgovor na temu

[es] :: Perl :: Sortiranje...??

[ Pregleda: 2913 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.