Összegzés

Adott egy N elemű T számsorozat. Határozzuk meg az elemek összegét!
A végeredményt az 'osszeg' tartalmazza.

    
    osszeg = 0
    ciklus i = 0 .. n -1
        osszeg = osszeg + t[i]
    ciklus vége
    ki osszeg
    
    

Folyamatábra...

Letölthető Flowgorithm ábra

Megszámolás

Adott egy N elemű T számsorozat. Határozzuk meg az adott tulajdonsággal rendelkező elemek számát!
A végeredményt az 'szamlalo' tartalmazza.


    szamlalo = 0
    ciklus i = 0 .. n - 1
        ha t[i] < 0 akkor 
            szamlalo = szamlalo + 1
        ha vége
    ciklus vége
    ki szamlalo
    

Folyamatábra...

Eldöntés "A"

Eldöntés az összes elem vizsgálatával


    van = 0
    ciklus i = 0 .. n-1
    ha tomb[i] = keresett_ertek akkor
        van = 1
    ha vége
    ciklus vége   
    

Eldöntés "B"

Nem megy végig a tömbön


    i = 0
    ciklus amíg i<n és t[i]<> ker
        i=i+1
    ciklus vége

    Ha i<n akkor
        ki "Van ilyen" 
    különben
        ki "A keresett érték nem található"
    ha vége        
    

Folyamatábra...

Kiválasztás

Az adott elem a tömb hányadik helyén van. (Tudjuk, hogy tartalmazza!)


    i = 0
    ciklus amíg tomb[i] <> ker
        i = i + 1
    ciklus vége
    ki i + 1
    

Folyamatábra...

Keresés /Lineáris vagy szekvenciális/

Adott elem szerepel-e a rendezetlen tömbben és hányadik helyen.


    ker = 30 //-- Keresett érték --
    i = 0
    ciklus amíg i<n és t[i]<>ker
        i = i + 1
    ciklus vége

    Ha i<n akkor
        ki "Van ilyen" 
        ki: "Indexe: ", i
    különben
        ki: "A keresett érték nem található"
    ha vége        

Kiválogatás

Adott feltételnek megfelelő elemeket másik tömbbe másolom.


    j = 0
    ciklus i = 0 .. n - 1
        ha a[i] < 5 
            b[j] = a[i]
            j = j + 1
        ha vége
    ciklus vége        

Szétválogatás

Adott tulajdonság értéke alapján másik helyre helyezzük át az elemeket.


    j = 0
    k = 0
    ciklus i = 0 .. n-1
        ha a[i] = feltétel 
            b[j] = a[i]
            j = j + 1
        különben
            c[k] = a[i]
            k = k + 1
        ha vége
    ciklus vége        

Metszet

Két tömb azonos elemeinek kiválogatása egy harmadik tömbbe


    k = 0
    ciklus i = 0 .. n-1
        j = 0
        ciklus amíg j<m és b[j]<>a[i]
            j = j + 1
        ciklus vége
        ha j<m akkor 
            c[k] = a[i]
            k = k + 1
        ha vége
    ciklus vége        

Unió

A és B tömb minden elemét szeretnénk C tömbbe tenni.


    ciklus i = 0 .. n-1
        c[i] = a[i]
    ciklus vége 
    k = n
    ciklus j = 0 .. m-1
        i = 0
        ciklus amíg i<n és b[j]<>a[i]
            i = i + 1
        ciklus vége
        ha i>=n akkor
            c[k] = b[j]      
            k = k + 1
        ha vége
    ciklus vége        

Maximum kiválasztás

Keressük a tömb legnagyobb elemét.


    max = t[0]
    ciklus i = 1 .. n - 1
        ha t[i]> max akkor 
            max = t[i]
        ha vége
    ciklus vége
    ki max        

Buborékos rendezés

A sorozat két első elemét összehasonlítjuk, és ha fordított sorrendben vannak felcseréljük. Tovább folytatjuk a párok összehasonlítását.


    ciklus i = n-1 .. 1
      ciklus j = 0 .. i-1
        ha t[j] > t[j+1] akkor 
          b = t[j+1]
          t[j+1] = t[j]
          t[j] = b
        ha vége
      ciklus vége
    ciklus vége        

Rendezés maximum kiválasztással

Kiválasztjuk a legnagyobb elemet és a rendezetlen tömbrész végére rakjuk.


    ciklus i = n-1 .. 0
      maxIndex = i
      ciklus j = 0 .. i-1
        ha t[j] > t[maxIndex] akkor maxIndex = j
      ciklus vége
      tmp = t[i]
      t[i] = t[maxIndex]
      t[maxIndex] = tmp
    ciklus vége        

Rendezés beszúrással

Balról veszem a második elemet és haladok jobbra. Ez lesz az aktuális elem. Mindig az aktuális elemtől balra lévő elemhez hasonlítok. Ha a balra lévő nagyobb, cserélek. Ha cseréltem a csere kisebb elemét megint a baloldalihoz hasonlítom. Ha nem cserélek tovább balra haladva, akkor visszamegyek az aktuális elemhez, és ott újra kezdem.


    ciklus i = 0 .. n-1
      kulcs = t[i]
      j = i - 1
      ciklus amíg j >= 0 és t[j] > kulcs
        t[j+1] = t[j]
        j = j - 1
      ciklus vége
      t[j+1] = kulcs
    ciklus vége        

Shell rendezés

Nem csak a szomszédos elemeket hasonlítjuk össze, hanem először távoli indexű értékeket nézzünk, majd folyamatosan csökkentjük a távolságot. Az aktuális távolságot tárolhatom például h tömbben. (Az i értéke felvesz negatív értéket is)


    t = tömb(8, 9, 4, 7, 6, 3, 2, 1, 5);
    h = tömb(5, 3, 1);

    ciklus k = 0 .. 2
      lepes = h[k]
      ciklus j = lepes .. n-1
        i = j - lepes; 
        kulcs = t[j]
        ciklus amíg i >= 0 és t[i] > kulcs 
          t[i + lepes] = t[i]
          i = i - lepes
        Ciklus vége    
        t[i + lepes] = kulcs
      Ciklus vége
    Ciklus vége        

Gyorsrendezés

A gyorsrendezés egy rekurzív algoritmus. Kiválasztunk a listából egy elemet támpontnak, angolosan pivotnak. A rendezendő tömböt/listát kettéosztjuk, majd ami kisebb a támpontnál azt kisebb, ami nagyobb azt a nagyobb és ami egyenlő azt egy egyenlő tömbbe rakom. A végén összefűzöm a három tömböt. A kisebb és nagyobb tömbre külön-külön alkalmazom a gyorsrendezést.


function quicksort(list) 
	if meret(list) <= 1 akkor
		return list
	var list less, equal, greater
	pivot = list[meret(list)-1]
	for each x in lista 
		if x@<pivot then append x to less
		if x==pivot then append x to equal
		if x>pivot then append x to greater
	return concatenate(quicksort(less), equal, quicksort(greater))        

Összefésülés

Két rendezett tömb unóját szeretném megkapni, és az unióképzés után szeretném megtartani a rendezettséget.


    i := 0
    j := 0
    k := -1
    ciklus amíg (i< n) és (j<m)
      k := k + 1

      ha a[i] < b[j] akkor 
          c[k] := a[i]
          i := i + 1
      ellenben
      ha a[i] = b[j] akkor 
          c[k] := a[i]
          i := i + 1
          j := j + 1
      ellenben
      ha a[i]> b[j] akkor
          c[k] := b[j]
          j := j + 1
      ha vége
    ciklus vége

    ciklus amíg i < n 
      k := k + 1
      c[k] := a[i]
      i := i + 1
    ciklus vége

    ciklus amíg j < m 
      k := k + 1
      c[k] := b[j]
      j := j + 1
    ciklus vége