[ gensher @ 27.02.2007. 17:48 ] @
Bubble sortiranje =>


Za niz

Values(i)= 20 40 30 80 60 90 10 70 50 100

Code:

   For pass = 1 To 10
       For ctr = 1 To 9
          If (Values(ctr) > Values(ctr + 1)) Then
             t = Values(ctr)
             Values(ctr) = Values(ctr + 1)
             Values(ctr + 1) = t
          End If
       Next ctr
    Next pass


Koje vrednosti odgovaraju promenljivim pass od 1 do 10, a koje posebno ctr pri izvrsavanju i zasto ctr od 1 do 9 (to i razumem), ali koje njima vrednosti odgovaraju iz niza?

Kako izvrsava korak po korak kod i koje vrednosti (ili indexe) pri tom koristi?

Hvala
[ masetrt @ 28.02.2007. 10:40 ] @
Uf pa ovaj kod ti je totalno neispravan. Evo kako bi trebalo da izgleda buble sort:

Code:
For pass = 1 To 9
             For ctr = pass + 1 To 10
                 If (Values(pass) > Values(ctr)) Then
                    t = Values(ctr)
                    Values(ctr) = Values(pass)
                    Values(pass) = t
                 End If
            Next ctr
        Next pass
[ gensher @ 28.02.2007. 10:47 ] @
Evo ga zapravo ceo kod

Code:

 Gosub [AskForData]    ' Get user's list of numbers
 Gosub [SortData]      ' Sort the numbers
 Gosub [PrintData]     ' Print the numbers


End

[AskForData]         ' Gets 10 values from the user
   Print "** Number Sorting Program **"
   For i = 1 To 10
       Input "What is a number for the list? "; Value
       Values(i) = Value
   Next i
   Return

[SortData]           ' Sorts the 10 values
   For pass = 1 To 10
       For ctr = 1 To 9
          If (Values(ctr) > Values(ctr + 1)) Then
             t = Values(ctr)
             Values(ctr) = Values(ctr + 1)
             Values(ctr + 1) = t
          End If
       Next ctr
    Next pass
    Return

[PrintData]
    Print
    Print "After the sort:"
    For i = 1 To 10
       Print Values(i); " ";   ' Print list with a space between the
                               ' numbers
    Next i
    Return
End
[ masetrt @ 28.02.2007. 12:07 ] @
Ok....!? Ne razumem tacno sta si pitao, samo ti onaj algoritam za sortiranje nije tacan. Zameni ga sa onim sto sam ti napisao i sve ce biti OK. Znaci samo deo za sortiranje
[ masetrt @ 28.02.2007. 13:04 ] @
Ups izvini i ono sortiranje sto si ti stavio je tacno :). Mala nepaznja
[ gensher @ 28.02.2007. 14:15 ] @
Znaci zanima me kako se tacno izvrsava code korak po korak kroz apsolutne vrednosti izrazeno...

Values(i) = 20 40 30 80 60 90 10 70 50 100

...i koji index kojoj apsolutnoj vrednosti odgovara u podrutini [SortData], ako kaze " pass = 1 To 10 " i " ctr = 1 To 9 ".

Znaci za Values(pass=1) = Values(1) = "neka vrednost" i Values(ctr=1) = Values(1) = "neka vrednost".

Od prilike je to to...
[ gensher @ 28.02.2007. 14:16 ] @
Mislim da imam odgovor na svoje pitanje/a, ali u svakom slucaju zelim da cujem sta ko ima da kaze... Bitno mi je.
[ masetrt @ 28.02.2007. 14:52 ] @
Pazi ovako u sortiranju ti imas ugnjezdene petlje. Znaci prva promenljiva pass ti ide od 1 do 10. E za svaku vrednost pass promenljive imas promenljivu ctr koja ide od 1 do 9 tj. za pass = 1 ctr ti ide od 1 do 9, pa za pass = 2 ctr ti ide od 1 do 9,... Values(1) ti je = 20, Values(2) ti je = 40,...Values(10) ti je = 100. Kad trenutnu vrednost promenljive ctr stavis u Values(ctr) dobices odgovarajuci element niza tj. ako je ctr = 1 onda je Values(ctr) = 20