Ahojte ano da sa to vyriesit cez sorted(n1+n2) ale cielom cviceniua je precvicit algoritmicke myslenie a skusit pochopit co sa deje na pozadi :) mal som to spomenut v uvode :)
Ahoj. Nie je jednoduchšie ako už aj ostatní písali def merge(n1,n2): return sorted(n1+n2) ? potom nemusia byť ani nka usporiadané aby sa výsledok usporiadal. Či je zadanie vyrobiť vlastnú fciu merge podobnú tej čo sa používa pri napr. QuickSorte?
2 роки тому+1
Cielom cvicenia je pochopit co sa deje na pozadi :)
alebo pouzit sorted (nie je podstatna ani rastuca postupnost v poli :-) ) def msort(n1, n2): res = [] res += n1 res += n2 return sorted(res) if __name__ == "__main__": nums1 = [1,3,4,7,8,11, 18, 19, 20, -1] nums2 = [2,3,5,9,16] print(msort(nums1, nums2))
Já jsem to vyřešil podle bubble sortu z minulé lekce: nums1 = [1, 2, 4] nums2 = [2, 3, 6] nums = nums1 + nums2 for a in range(len(nums)): for i in range(len(nums)-1): if nums[i] > nums[i + 1]: temp = nums[i + 1] nums[i + 1] = nums[i] nums[i] = temp print(nums)
Mam prejdeny cely kurz a aj vacsinu pokracujuceho na OOP, ale to vysvetlenie nie, ze nepochopila, ale bolo zbytocne zlozite a vobec v predchadzajucich nebolo vysvetlene co to je a preco if__name__=="__main__": Moje riesenie je: nums1 = [1, 2, 4] nums2 = [2, 3, 6] vysledok = [1, 2, 2, 3, 4, 6] result = [] for i in nums1: result.append(i) for j in nums2: result.append(j) result.sort() print(f"result {result}")
Ahoj, pokusim sa ti to vysvetlit, ako to chapem ja. Tato podmienka sa vyhodnoti ako True len vtedy, ak sa nachadza v scripte, ktory spustas. Vsade inde (napr. ak ho importujes ako modul), sa tato cast nevykonava. Vsade inde sa to robi preto, ze ked sa pokusis SPUSTIT modul priamo, vtedy sa vyhodnoti tato podmienka ako True (ak modul tuto sekciu obsahuje) a vykonaju sa tzv. unit testy pre dany modul (otestovanie, ci funkcie v module pracuju spravne). Snad sa nemylim, ak ano, budem rad, ak ma niekto opravi ... Ak som to napisal zlozito, ozvi sa a pokusim sa to vysvetlit inak a snad zrozumitelnejsie.
Ahojte ano da sa to vyriesit cez sorted(n1+n2) ale cielom cviceniua je precvicit algoritmicke myslenie a skusit pochopit co sa deje na pozadi :) mal som to spomenut v uvode :)
res = numbers1 + numbers2
print(sorted(res))
Ale upřímně, že jde listy spojovat tímto způsobem jsem zjistil až teď :-)
ahoj prosím mam otázku čo znamená __init__ aj keď programujem s AI alebo aj sa m vo vs code tak sa mi to tam stále vyskytuje čo je to?
Ahoj. Nie je jednoduchšie ako už aj ostatní písali
def merge(n1,n2):
return sorted(n1+n2)
? potom nemusia byť ani nka usporiadané aby sa výsledok usporiadal.
Či je zadanie vyrobiť vlastnú fciu merge podobnú tej čo sa používa pri napr. QuickSorte?
Cielom cvicenia je pochopit co sa deje na pozadi :)
alebo pouzit sorted (nie je podstatna ani rastuca postupnost v poli :-) )
def msort(n1, n2):
res = []
res += n1
res += n2
return sorted(res)
if __name__ == "__main__":
nums1 = [1,3,4,7,8,11, 18, 19, 20, -1]
nums2 = [2,3,5,9,16]
print(msort(nums1, nums2))
porovnavam samozrejme
res = []
res += n1
res += n2
s
res = nums1 + nums2
Som zatiaľ v polovici kurzu ale aj toto sa do budúcna zíde
Já jsem to vyřešil podle bubble sortu z minulé lekce:
nums1 = [1, 2, 4]
nums2 = [2, 3, 6]
nums = nums1 + nums2
for a in range(len(nums)):
for i in range(len(nums)-1):
if nums[i] > nums[i + 1]:
temp = nums[i + 1]
nums[i + 1] = nums[i]
nums[i] = temp
print(nums)
a ešte načo je tam to __name__ == "__main__" ?
Mam prejdeny cely kurz a aj vacsinu pokracujuceho na OOP, ale to vysvetlenie nie, ze nepochopila, ale bolo zbytocne zlozite a vobec v predchadzajucich nebolo vysvetlene co to je a preco if__name__=="__main__":
Moje riesenie je:
nums1 = [1, 2, 4]
nums2 = [2, 3, 6]
vysledok = [1, 2, 2, 3, 4, 6]
result = []
for i in nums1:
result.append(i)
for j in nums2:
result.append(j)
result.sort()
print(f"result {result}")
Ahoj, pokusim sa ti to vysvetlit, ako to chapem ja. Tato podmienka sa vyhodnoti ako True len vtedy, ak sa nachadza v scripte, ktory spustas. Vsade inde (napr. ak ho importujes ako modul), sa tato cast nevykonava. Vsade inde sa to robi preto, ze ked sa pokusis SPUSTIT modul priamo, vtedy sa vyhodnoti tato podmienka ako True (ak modul tuto sekciu obsahuje) a vykonaju sa tzv. unit testy pre dany modul (otestovanie, ci funkcie v module pracuju spravne). Snad sa nemylim, ak ano, budem rad, ak ma niekto opravi ... Ak som to napisal zlozito, ozvi sa a pokusim sa to vysvetlit inak a snad zrozumitelnejsie.
Pozor! Neklesajuci neznamena automaticky rastuci.
1,2,3,4,3,2,1 je neklesajuci ako aj 3,2,2,3,1.
zoznam1 = [1, 4, 6, 8, 10]
zoznam2 = [3, 5, 7, 9 ,10,33, 55]
tmp = []
rozdiel = min(len(zoznam1), len(zoznam2))
for iteracia in range(rozdiel):
if zoznam2[iteracia] < zoznam1[iteracia]:
tmp.append(zoznam2[iteracia])
tmp.append(zoznam1[iteracia])
else:
tmp.append(zoznam1[iteracia])
tmp.append(zoznam2[iteracia])
tmp.extend(zoznam1[rozdiel:])
tmp.extend(zoznam2[rozdiel:])
print(tmp)