Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.815 pregleda

Najnovija ↓

Sortiranje...?? 13.07.2003. u 15:26 · pre 283 meseca #1
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!
Re: Sortiranje...?? 14.07.2003. u 00:51 · pre 283 meseca #2

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.
Potpis
www.brzakupovina.com
Re: Sortiranje...?? 15.07.2003. u 15:07 · pre 283 meseca #3
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;
}
Re: Sortiranje...?? 16.07.2003. u 14:23 · pre 283 meseca #4

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.
Potpis
www.brzakupovina.com
Re: Sortiranje...?? 16.07.2003. u 15:39 · pre 283 meseca #5
Vec sam se pozabavio, zato mi i ne predstavlja problem. ;)
Re: Sortiranje...?? 17.07.2003. u 15:55 · pre 283 meseca #7
OK. Hvala vam svima na pomoci...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme