IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Bubblesort

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Petr
Nevyplnené
Avatar
Petr:27.1.2012 0:18

Díky 8-)

 
Odpovedať
27.1.2012 0:18
Avatar
olaznik
Člen
Avatar
olaznik:9.12.2014 12:47

Prosímtě v tom druhém řádku, jak je ( int j = list.length - 2 ) proč tam odečítáš 2 ?? díky za odpověd. Měj se.

Editované 9.12.2014 12:49
 
Odpovedať
9.12.2014 12:47
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na olaznik
Jan Vargovský:9.12.2014 14:30

Klasicky jede cyklus od i do < length, ale on použil <= proto tam musí být length - 1 a protože porovnává aktuální prvek a ten za ním, tak tam musí být length - 2;

 
Odpovedať
9.12.2014 14:30
Avatar
Jozef
Člen
Avatar
Jozef:21.3.2015 0:00

C

void bubbleSort(int list[],int size) {
  // kontrola prohozeni
  int swapped = 1,temp;
  while (swapped) {
    swapped = 0;
    for (int i = 0; i < size; i++) {
      // prohozeni
      if (list[i] > list[i + 1]) {
        temp = list[i];
        list[i] = list[i + 1];
        list[i + 1] = temp;
        swapped = 1;
      }
    }
    size--;
  }
}
Odpovedať
21.3.2015 0:00
I'm not afraid to die on a treadmill
Avatar
Martin
Člen
Avatar
Martin:24.11.2016 17:39

Vyzeral by ShakerSort (v jave) nejak takto alebo je tam ešte možné zlepšenie ?

public static void ShakerSort(int[]list){
        int j = list.length-2;
        int temp;
        boolean swapped = true;
        while(swapped)
        {
            swapped = false;
            for(int i = 0;i<=j;i++)
            {
                if(list[i]>list[i+1])
                {
                    temp     = list[i];
                    list[i]  = list[i+1];
                    list[i+1]= temp;
                    swapped = true;
                }

             }
            for(int i = j; i>0;i--)
            {
                if(list[i]<list[i-1])
                {
                    temp     = list[i];
                    list[i]  = list[i-1];
                    list[i-1]= temp;
                    swapped = true;
                }
            }
            j--;
        }
    }
 
Odpovedať
24.11.2016 17:39
Avatar
Neaktivní uživatel:10.1.2017 18:05

Optimalizovaný bubble sort pre PHP:

function bubbleDesc($input) {

    $arrayLength = sizeof($input) - 1;

    $i = 0;
    while($i < $arrayLength) {

        $count = $arrayLength - $i;
        $j = 0;
        while($j < $count) {

            if($input[$j + 1] > $input[$j]) {
                $val = $input[$j + 1];
                $input[$j + 1] = $input[$j];
                $input[$j] = $val;
            }

            ++$j;

        }

        ++$i;

    }

    return $input;

}

Pre opačné usporiadanie stači otočiť podmienku.

Odpovedať
10.1.2017 18:05
Neaktivní uživatelský účet
Avatar
Pavel Šůstek:9.5.2017 18:36

Ahoj ,prošel jsem Fortranem ,Basicem ,Pascalem ,Delphi(to už bylo všechno dávno) a nyní je poptávka po C-éčkařích ,tak to zkouším ,že bych se zkusil zapojit .

 
Odpovedať
9.5.2017 18:36
Avatar
marek popl
Člen
Avatar
marek popl:12.9.2018 16:56

Optimalizovaný bubble sort pro python:

def bubbleSort(arr):
    n = len(arr)


    for i in range(n):


        for j in range(0, n-i-1):


            if arr[j] > arr[j+1] :
                arr[j], arr[j+1] = arr[j+1], arr[j]


arr = [64, 34, 25, 12, 22, 11, 90]

bubbleSort(arr)

print ("Seřazení pole je:")
for i in range(len(arr)):
    print ("%d" %arr[i]),
 
Odpovedať
12.9.2018 16:56
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!