bizzaarr : manipuler une liste apres un tri
naskaa
Membre
salut,
Le code ci-haut présente un triBulle et un TriFusion. Je me demande pourquoi dans le cas du tri bulle ma liste myList sans faire un return -> J'arrive a la manipuler !
Alors que pour le tri Fusion si je ne fais pas [glow=red,2,300]l[:]= Tri_Fusion_interne(l)[/glow] ca ne marche pas
et pourquoi [glow=red,2,300]l[:]= Tri_Fusion_interne(l)[/glow] au lieu de [glow=red,2,300]l= Tri_Fusion_interne(l)[/glow], a quoi sert le [:] ??
p.s. J'ai codé le tri bulle mais le tri fusion je l'ai pris sur un site
merci
<br /># O(n2)<br />def triBulle(aList, len_AList):<br /> i=0;<br /> Tmp=0; <br /> while(i < len_AList):<br /> j = len_AList - 1;<br /> while(j > i):<br /> if ( aList[j-1] < aList[j]):<br /> Tmp = aList[j-1];<br /> aList[j-1] = aList[j];<br /> aList[j] = Tmp;<br /> j=j-1;<br /> i=i+1;<br /><br />def Merge(l1, l2):<br /> l = []<br /> i = j =0<br /> n1=len(l1)<br /> n2=len(l2)<br /> while True:<br /> if i<n1 and j<n2:<br /> if l1[i]<l2[j]:<br /> l.append(l1[i])<br /> i+=1<br /> else:<br /> l.append(l2[j])<br /> j+=1<br /> elif i>=n1:<br /> l.extend(l2[j:])<br /> break<br /> else:<br /> l.extend(l1[i:])<br /> break<br /> return l<br /><br />#O(nlogn)<br />def Tri_Fusion(l):<br /> def Tri_Fusion_interne(l):<br /> if len(l)<2: return l<br /> return Merge( Tri_Fusion_interne(l[:len(l)//2]), Tri_Fusion_interne(l[len(l)//2:]))<br /> l[:]= Tri_Fusion_interne(l)<br /><br />#Creation liste<br />myList = [12,22,3,44,32,5,66,23];<br />lenMyList = len(myList);<br /><br />#TRI liste<br />#triBulle(myList, lenMyList); # tri bulle ici <br />#Tri_Fusion(myList); # ou tri fusion ici<br /><br />#Affichage<br />y=0;<br />while(y < len(myList)):<br /> print myList[y];<br /> print "**"<br /> y=y+1;<br />
Le code ci-haut présente un triBulle et un TriFusion. Je me demande pourquoi dans le cas du tri bulle ma liste myList sans faire un return -> J'arrive a la manipuler !
Alors que pour le tri Fusion si je ne fais pas [glow=red,2,300]l[:]= Tri_Fusion_interne(l)[/glow] ca ne marche pas
et pourquoi [glow=red,2,300]l[:]= Tri_Fusion_interne(l)[/glow] au lieu de [glow=red,2,300]l= Tri_Fusion_interne(l)[/glow], a quoi sert le [:] ??
p.s. J'ai codé le tri bulle mais le tri fusion je l'ai pris sur un site
merci
Connectez-vous ou Inscrivez-vous pour répondre.