/ / zoradenie jedného zoznamu bez zoradenej funkcie - python

zoradenie jedného zoznamu bez zoradenej funkcie - python

             a=[12,11,13,21,1,2,3,45,65]
i=0
j=1
k=0
newarr=[]
while(len(a)>=k):
if (a[i]>a[j]):
a[i],a[j]=a[j],a[i]
i=i+1
j=j+1

k=k+1

tlač (a)

Nedosahujem zamýšľaný výstup. Môže niekto identifikovať?

odpovede:

0 pre odpoveď č. 1

Vykonávate algoritmus nesprávnym spôsobom. Myslím, že by ste sa mali naučiť rôzne triediace algoritmy na triedenie a zoradenie v pytóne alebo mape v iných jazykoch.

Príklad: Bubble Sort ... Najjednoduchšie sa naučíte.

listing=[12,34,5,33,89,3]
for i in range(0,len(listing)-1):
for j in range(0,len(listing)-i-1):
if listing[j]>listing[j+1]:
temp=listing[j]
listing[j]=listing[j+1]
listing[j+1]=temp
print(listing)

A ešte jedna vec spomenúť. Funkcia list.sort () tiež používa stabilný algoritmus na triedenie. Prečítajte si tu Aký algoritmus triedenia používa zoznam STL :: sort ()?