pridávam svoje riešenie zo zadania prvých minút, neviem ci je správne. Ináč dakujem za videa, celkom ma to baví, už som zvedaví na záverečnú úlohu numbers=[5,2,3,1,4] nove=[numbers[0]] for number in range (1,len(numbers)): pridat=True for num in range (1,number+1): if nove[num-1] >= numbers[number]: nove.insert(num-1,numbers[number]) pridat=False break if pridat: nove.append(numbers[number]) print (nove)
Po nějakém čase jsem se opět vrátil k tomuhle videu a musím poznamenat, je se to Mišo snaží vysvětlit opravdu hodně podrobně a často se vrací znovu a znovu k jednoduchým a zřejmým věcem. Proto je hrozná škoda, že stejné množství podrobnosti nenajdeme v lekci o dekorátorech, protože to je asi složitější látka a tam jsme to prosvištěli raketovou rychlostí. Ačkoli je tohle číslo lekce vyšší, než lekce s dekorátory, tak tady se najednou vracíme k něčemu tak "jednoduchému" jako je procházení polem. Určitě si myslím, že dekorátory a uzávěry by si zasloužily nějaké nové obsažnější video, to je můj názor a návrh.
Ahoj, myslim si, ze sa Miso venoval dekoratorom dostatocne. Ked si pozries prednasku 26. (first class functions), mas tam, podla mna, vyborny uvod k dekoratorom ... Druha moznost je, ze vies viac, ako viem ja (co je velmi pravdepodobne), takze bud, prosim ta, konkretny, co ti v tom kurze chyba ?
Síce som mal nejaké problémy a potrápil som si hlavu ale som rád, že som úlohu spravil sám a ďakujem ti za tvoje videá, moje riešenie: numbers = [5,3,6,4,2] def number_sort(): i = -1 j = -2 k = len(numbers)-1 for _ in range(1, len(numbers)): for _ in range(1, len(numbers)+1): if numbers[i] < numbers[j]: numbers.insert(k, numbers.pop(j)) if -j != len(numbers): j -= 1 else: break if k == 0: break i -= 1 j = i-1 k -= 1 return numbers print(number_sort())
Zdravím, mne sa to podarilo minimalisticky: array=[5,2,3,1,4] def sorting(arr) : for a in range(0,len(arr)) : for b in range(a,len(arr)) : if arr[a] > arr[b] : arr[a], arr[b] = arr[b], arr[a] return arr print(sorting(Array))
ako prvy pokus som na to siel trochu inac a pri iterovani pre kazde cislo / prvok pola som mal vnorenu iteraciu, ktora porovnavala to cislo znova s kazdym cislom a docasna premenna counter pocitala, kolko mensich cisel sa v poli nachadza a podla toho urcila novy index pre toto cislo... ale po napovede so swapovanim indexov mi to doslo a spravil som to velmi podobne (bez temp premennej)... Vdaka za videjko :)
Ahoj Mišo, tvoje kurzy Pythonu mi veľmi pomohli, rád by som sa naučil aj Javu pretože je to trošku vyšší level 😁 snažil som sa nájisť nejaké kurzy ale žiadny nebol tak dobrý ako tvôj. Podľa mňa by bol dobrý nápad nás naučit aj Javu 😄
Ahoj, chcel by som sa opýtať, že či na vysokej škole má naučia programovať aj keď ja neviem ako sa programuje?
3 роки тому+1
Vysoka skola ta trosku viac namotivuje naucit sa to :) zial na vyske to nik nebude vysvetlovat krok po kroku ako je to v mojich videach :) ale naucia ta tam ovela lepsie veci
1. Inak toto by ma celkom zaujimalo ze python vo stavanej funkcii sort() pre listy asi nepouziva buble sort preto ze je pomaly ci? Moja otazka je ze aky sort sa pouziva vo funkcii sort() pre listy? 2. Ako sa da vylepsit algoritmicke myslenie? Alebo kde sa da dobre trenovat?
3 роки тому
1. Timsort (stackoverflow.com/questions/10948920/what-algorithm-does-pythons-sorted-use) je to trosku zlozitejsi algoritmus na pochopenie :) mozno raz spravim video 2. Treba vela programovat :) hlavne take algoritmicke (rozumej logickejsie) ulohy.
Ahoj, našla jsem řešení to udělat takhle: x = [5, 2, 3, 1, 4] print(x) for j in range(len(x) - 1): for i in range(len(x) - j - 1): if x[i] > x[i+1]: temp = x[i] x[i] = x[i+1] x[i+1] = temp print(x) Ale stejně to několikrát zbytečně zopakuje...
Hezké. Podle mě je dobré použít místo té pomocné proměnné temp rovnou konstrukci, kterou Python zvládá pro přehození dvou prvků: x[i+1], x[i] = x[i], x[i+1] Nevím, jestli je to rychlejší, než přes ten temp, neměřil jsem to (ale možná si udělám dekorátor, který bude měřit čas a proženu tím jak ten tvůj kód, tak ten tvůj s mojím doporučením a nakonec i celé svoje řešení, viz výše).
Prošel jsem všechny díly seriálu o Pythonu a je to paráda. Díky moc
ty kokos tak takto som si ešte nepotrápil hlavu pri učení sa programovania :D super kurz
pridávam svoje riešenie zo zadania prvých minút, neviem ci je správne. Ináč dakujem za videa, celkom ma to baví, už som zvedaví na záverečnú úlohu
numbers=[5,2,3,1,4]
nove=[numbers[0]]
for number in range (1,len(numbers)):
pridat=True
for num in range (1,number+1):
if nove[num-1] >= numbers[number]:
nove.insert(num-1,numbers[number])
pridat=False
break
if pridat:
nove.append(numbers[number])
print (nove)
Po nějakém čase jsem se opět vrátil k tomuhle videu a musím poznamenat, je se to Mišo snaží vysvětlit opravdu hodně podrobně a často se vrací znovu a znovu k jednoduchým a zřejmým věcem. Proto je hrozná škoda, že stejné množství podrobnosti nenajdeme v lekci o dekorátorech, protože to je asi složitější látka a tam jsme to prosvištěli raketovou rychlostí. Ačkoli je tohle číslo lekce vyšší, než lekce s dekorátory, tak tady se najednou vracíme k něčemu tak "jednoduchému" jako je procházení polem. Určitě si myslím, že dekorátory a uzávěry by si zasloužily nějaké nové obsažnější video, to je můj názor a návrh.
Ahoj, myslim si, ze sa Miso venoval dekoratorom dostatocne. Ked si pozries prednasku 26. (first class functions), mas tam, podla mna, vyborny uvod k dekoratorom ... Druha moznost je, ze vies viac, ako viem ja (co je velmi pravdepodobne), takze bud, prosim ta, konkretny, co ti v tom kurze chyba ?
Síce som mal nejaké problémy a potrápil som si hlavu ale som rád, že som úlohu spravil sám a ďakujem ti za tvoje videá, moje riešenie:
numbers = [5,3,6,4,2]
def number_sort():
i = -1
j = -2
k = len(numbers)-1
for _ in range(1, len(numbers)):
for _ in range(1, len(numbers)+1):
if numbers[i] < numbers[j]:
numbers.insert(k, numbers.pop(j))
if -j != len(numbers):
j -= 1
else:
break
if k == 0:
break
i -= 1
j = i-1
k -= 1
return numbers
print(number_sort())
Zdravím, mne sa to podarilo minimalisticky:
array=[5,2,3,1,4]
def sorting(arr) :
for a in range(0,len(arr)) :
for b in range(a,len(arr)) :
if arr[a] > arr[b] :
arr[a], arr[b] = arr[b], arr[a]
return arr
print(sorting(Array))
ako prvy pokus som na to siel trochu inac a pri iterovani pre kazde cislo / prvok pola som mal vnorenu iteraciu, ktora porovnavala to cislo znova s kazdym cislom a docasna premenna counter pocitala, kolko mensich cisel sa v poli nachadza a podla toho urcila novy index pre toto cislo... ale po napovede so swapovanim indexov mi to doslo a spravil som to velmi podobne (bez temp premennej)... Vdaka za videjko :)
def bubble(arr) :
swap=1
while swap > 0:
swap=0
for i in range(0,len(arr)-1) :
if arr[i] > arr[i+1] :
arr[i], arr[i+1] = arr[i+1], arr[i]
swap +=1
return arr
hodně zajímavé video, jen otázka je důležité znát principy těchto algoritmu? nebo je lepší se učit jak vytvářet svoje vlastní?
Je dolezite poznat ako funguje existujuce algoritmi aby sme mohli vymysliet vlastne (aspon podla mna :))
Krásne video, prosím si ešte binary search video, linear search a quick sort. Ďakujem
Ahoj Mišo, tvoje kurzy Pythonu mi veľmi pomohli, rád by som sa naučil aj Javu pretože je to trošku vyšší level 😁 snažil som sa nájisť nejaké kurzy ale žiadny nebol tak dobrý ako tvôj. Podľa mňa by bol dobrý nápad nás naučit aj Javu 😄
Zial ja javu vobec nemusim :)
Ahoj, chcel by som sa opýtať, že či na vysokej škole má naučia programovať aj keď ja neviem ako sa programuje?
Vysoka skola ta trosku viac namotivuje naucit sa to :) zial na vyske to nik nebude vysvetlovat krok po kroku ako je to v mojich videach :) ale naucia ta tam ovela lepsie veci
Ďakujem
Pro setřídění čísel v listu, stačí použít funkci:sorted :)
Samozrejme :) ale ide o to pochopit co je na pozadi :D
1. Inak toto by ma celkom zaujimalo ze python vo stavanej funkcii sort() pre listy asi nepouziva buble sort preto ze je pomaly ci? Moja otazka je ze aky sort sa pouziva vo funkcii sort() pre listy?
2. Ako sa da vylepsit algoritmicke myslenie? Alebo kde sa da dobre trenovat?
1. Timsort (stackoverflow.com/questions/10948920/what-algorithm-does-pythons-sorted-use) je to trosku zlozitejsi algoritmus na pochopenie :) mozno raz spravim video
2. Treba vela programovat :) hlavne take algoritmicke (rozumej logickejsie) ulohy.
def my_sort(arr: list):
while True:
sorted = True
for i in range(len(arr)-1):
if (arr[i+1] < arr[i]):
temp = arr[i]
arr[i] = arr[i+1]
arr[i+1] = temp
sorted = False
if sorted == True:
break
Ahoj,
našla jsem řešení to udělat takhle:
x = [5, 2, 3, 1, 4]
print(x)
for j in range(len(x) - 1):
for i in range(len(x) - j - 1):
if x[i] > x[i+1]:
temp = x[i]
x[i] = x[i+1]
x[i+1] = temp
print(x)
Ale stejně to několikrát zbytečně zopakuje...
Hezké. Podle mě je dobré použít místo té pomocné proměnné temp rovnou konstrukci, kterou Python zvládá pro přehození dvou prvků:
x[i+1], x[i] = x[i], x[i+1]
Nevím, jestli je to rychlejší, než přes ten temp, neměřil jsem to (ale možná si udělám dekorátor, který bude měřit čas a proženu tím jak ten tvůj kód, tak ten tvůj s mojím doporučením a nakonec i celé svoje řešení, viz výše).