NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 2 - Bubblesort

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Petr
Neregistrovaný
Avatar
Petr:27.1.2012 0:18

Díky 8-)

 
Odpovědět
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.

Editováno 9.12.2014 12:49
 
Odpovědět
9.12.2014 12:47
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá 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;

 
Odpovědět
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--;
  }
}
Odpovědět
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--;
        }
    }
 
Odpovědět
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.

Odpovědět
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 .

 
Odpovědět
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]),
 
Odpovědět
12.9.2018 16:56
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.