Novo

Forum kao aplikacija na telefonu

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

  • 8 odgovora
  • 4.134 pregleda

Najnovija ↓

Sortiranje brojeva 16.03.2007. u 16:39 · pre 238 meseci #1
Na formi imam 3 labele u koje se upisuju brojevi nasumicnim redosledom.
Kako ih sortirati da se upisuju u rastucem redosledu?
Re: Sortiranje brojeva 16.03.2007. u 16:50 · pre 238 meseci #2
Osnovni problem koji u tvom pitanju nije preciziran je: Odakle vuces te brojeve?

U zavisnosti od toga iz kog izvora preuzimas brojeve, bice i resenje drugacije, npr.

1) Pretpostavka: Brojevi su ti u nekom nizu - Resenje: Napravi proceduru za sortiranje brojeva u nizu, skini sa neta vec gotovu, skini sa neta biblioteku koja radi sa nizovima i ima metodu sortiranja ili pitaj ovde nekog da ti napise proceduru za sortiranje niza (inace to se uci na svakom jacem kursu iz programiranja i to kao jedna od obaveznih vezbi, tako da ce ti sigurno neko pomoci)

2) Pretpostavka: Brojevi su ti u nekom izvoru podataka kom mozes pristupiti preko ADO, DAO, RDO, XML i sl. - Resenje: Svaki od tih modela vec ima neku metodu za sortiranje podataka u setu.

Dakle, odakle uzimas podatke?
Re: Sortiranje brojeva 16.03.2007. u 19:15 · pre 238 meseci #3
Brojeve sam upisujem u text boxove i onda ih prebacujem u labele gde bi ih trebalo sortirati.
label1.caption = text1.text
U programu koristim ADO kontrolu.
Re: Sortiranje brojeva 16.03.2007. u 19:33 · pre 238 meseci #4
Nisi mi bas najjasnije odgovorio na konkretno pitanje, ali OK. Ako pretpostavimo da brojeve pre upisa u TextBox uzimas iz ADO Recordseta, pre nego sto krenes na upis brojeva u TextBox-ove pozovi Sort() metodu od Recordset-a.
Re: Sortiranje brojeva 16.03.2007. u 19:49 · pre 238 meseci #5
Valjda cu se nekako snaci.
Hvala ti.
Re: Sortiranje brojeva 16.03.2007. u 22:41 · pre 238 meseci
izmenjeno 1 put, poslednji put Aleksandar Ružičić 20.03.2007. u 11:00
  1. Aleksandar Ružičić20.03.2007. u 11:00zapis iz teksta poruke
#6
Ako si pocetnik, a predpostavljam da jesi, evo kod. samo se potrudi da ga detaljno analiziras!
Code:

procedure Resenje;
type niz = array of integer;
var
  c,s:integer;
  d:niz;

procedure Quicksort (var A:niz; l,h:integer);
var m: integer;
   function Poredi(var A:niz; l,h:integer): integer;
   var k,i,j:integer;
       procedure zameni(var A:niz; s,t:integer);
       var b:integer;
       begin
         b:=A[s];
              A[s]:=A[t];
              A[t]:=b
       end;
   begin
      k := A[h];
      i := l-1;
      j := h+1;
      repeat
             repeat i := i+1 until k <= A[i];
         repeat j := j-1 until k >= A[j];
         zameni(A,i,j)
      until j <= i;
      zameni(A,i,j);
      Poredi := i
   end;

begin
   if l < h then begin
      m := poredi(A,l,h);
      Quicksort(A,l,m-1);
      Quicksort(A,m,h)
   end;
end;
begin
  SetLength(d, ComponentCount);
  s:=0;
  for c := 0 to ComponentCount - 1 do
    if Components[c] is TEdit then
      with TEdit(Components[c]) do begin
          d[s]:=strtoint(Text);
          s:=s+1;
      end;
   Quicksort(d,0,s-1);
   s:=0;
   for c :=0 to ComponentCount - 1 do
    if Components[c] is Tlabel then
       with TLabel(Components[c]) do begin
          Caption:=inttostr(d[s]);
          s:=s+1;
      end;
end;
Re: Sortiranje brojeva 24.03.2007. u 20:03 · pre 238 meseci #9
Buuble sort jeste lak za implementaciju ali mu je vreme izvrsavanja O(n2), sto je mnogo, najbolji algoritam za sortiranje (niza) je quick sort gde je slozenost O(n log n)... Ima zanimljivih tema o algoritmima i ovde, na ES-u, recimo ova tema je odlican pocetak!
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme