User Tools

Site Tools


python:masyvo-rusiavimas

This is an old revision of the document!


Burbulo rūšiavimo algoritmas.

import random
 
f = []
 
for i in range(30):
    f.append( random.randint(1, 100))
 
print (f)
 
for i in range(30):
    for y in range(30-1):
        if f[y] > f[y+1]:
            tmp = f[y]
            f[y] = f[y+1]
            f[y+1] = tmp
 
print (f)

Atsitiktinių skaičių masyvas.

[71, 25, 44, 23, 78, 41, 61, 44, 70, 42, 1, 76, 48, 55, 56, 40, 21, 68, 28, 91, 29, 64, 20, 23, 37, 69, 43, 19, 51, 25]

Didejimo tvarka surūšiuotas masyvas.

[1, 19, 20, 21, 23, 23, 25, 25, 28, 29, 37, 40, 41, 42, 43, 44, 44, 48, 51, 55, 56, 61, 64, 68, 69, 70, 71, 76, 78, 91]

Algoritmo vykdymas pažingsniui.

Naudosime skaičių masyvą „5 1 4 2 8“ ir jį surūšiuosime nuo mažiausio elemento iki didžiausio.

Pirmas praėjimas:

([5 1] 4 2 8) → ([1 5] 4 2 8) Čia algoritmas palygina pirmus 2 elementus ir juos sukeičia vietomis.

(1 [5 4] 2 8) → (1 [4 5] 2 8)

(1 4 [5 2] 8) → (1 4 [2 5] 8)

(1 4 2 [5 8]) → (1 4 2 [5 8])) Dabar elementai yra išdėstyti tinkama tvarka, todėl algoritmas jų nesukeičia vietomis.

Antras praėjimas:

([1 4] 2 5 8) → ([1 4] 2 5 8)

(1 [4 2] 5 8) → (1 [2 4] 5 8)

(1 2 [4 5] 8) → (1 2 [4 5] 8)

(1 2 4 [5 8]) → (1 2 4 [5 8])

Dabar masyvo elementai išdėstyti tinkama tvarka, bet algoritmas to nežino. Algoritmui reikia vieno praėjimo be pakeitimų, kad žinotų, jog elementai reikiama tvarka.

Trečias praėjimas:

(1 2 4 5 8) → (1 2 4 5 8)

(1 2 4 5 8) → (1 2 4 5 8)

(1 2 4 5 8) → (1 2 4 5 8)

(1 2 4 5 8) → (1 2 4 5 8)

Algoritmas baigė savo darbą.

python/masyvo-rusiavimas.1481650975.txt.gz · Last modified: by linas