User Tools

Site Tools


python:masyvo-rusiavimas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
python:masyvo-rusiavimas [2016/12/01 13:49] – linaspython:masyvo-rusiavimas [2017/02/04 18:17] (current) – mantas
Line 1: Line 1:
-Burbulo rusiavimo algoritmas.+Burbulo rūšiavimo algoritmas.
  
 <code python> <code python>
 import random import random
  
-f = []+f = [random.randint(1, 100) for i in range(30)]
  
-for i in range(30): +print(f)
-    f.append( random.randint(1, 100))+
  
-print (f)+for i in range(len(f) - 1): 
 +    for y in range(len(f) - i - 1): 
 +        if f[y] > f[y + 1]: 
 +            f[y], f[y + 1] = f[y + 1], f[y]
  
-for i in range(30): +print(f)
-    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)+
 </code> </code>
  
-Atsitiktiniu skaiciu masyvas.+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] [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 surusiuotas masyvas.+Didėjimo 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] [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]
  
-Naudosime skaičių masyvą „5 1 4 2 8“ ir jį surūšiuosime nuo mažiausio elemento iki didžiausio. Kiekviename žingsnyje paryškinti elementai yra palyginami.+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: Pirmas praėjimas:
-(5 1 4 2 8) {\displaystyle \to } {\displaystyle \to } (1 5 4 2 8) Čia algoritmas palygina pirmus 2 elementus ir juos apkeičia vietomis. +  
-(1 5 4 2 8) {\displaystyle \to } {\displaystyle \to } (1 4 5 2 8) +([5 1] 4 2 8) -> ([1 5] 4 2 8) Čia algoritmas palygina pirmus 2 elementus ir juos sukeičia vietomis.  
-(1 4 5 2 8) {\displaystyle \to } {\displaystyle \to } (1 4 2 5 8) + 
-(1 4 2 5 8) {\displaystyle \to } {\displaystyle \to } (1 4 2 5 8) Dabar elementai yra išdėstyti tinkama tvarka, todėl algoritmas jų neapkeič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: Antras praėjimas:
-(1 4 2 5 8) {\displaystyle \to } {\displaystyle \to } (1 4 2 5 8) + 
-(1 4 2 5 8) {\displaystyle \to } {\displaystyle \to } (1 2 4 5 8) +([1 4] 2 5 8) -> ([1 4] 2 5 8) 
-(1 2 4 5 8) {\displaystyle \to } {\displaystyle \to } (1 2 4 5 8) + 
-(1 2 4 5 8) {\displaystyle \to } {\displaystyle \to } (1 2 4 5 8) +(1 [4 2] 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.+ 
 +(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: Trečias praėjimas:
-(1 2 4 5 8) {\displaystyle \to } {\displaystyle \to } (1 2 4 5 8) 
-(1 2 4 5 8) {\displaystyle \to } {\displaystyle \to } (1 2 4 5 8) 
-(1 2 4 5 8) {\displaystyle \to } {\displaystyle \to } (1 2 4 5 8) 
-(1 2 4 5 8) {\displaystyle \to } {\displaystyle \to } (1 2 4 5 8) 
-Galiausiai algoritmas baigė savo darbą. 
  
 +([1 2] 4 5 8) -> ([1 2] 4 5 8)
 +
 +(1 [2 4] 5 8) -> (1 [2 4] 5 8)
 +
 +Ketvirtas praėjimas:
 +
 +([1 2] 4 5 8) -> ([1 2] 4 5 8)
 +
 +Algoritmas baigė savo darbą.
  
python/masyvo-rusiavimas.1480592954.txt.gz · Last modified: by linas