列表从小到大排序
#列表从小到大排序,不支持列表内有相同的元素
li=[1,3,6,5,4,9,8,20,10] #未排序
cs=[]
for i in range(0,len(li)):
if i == 0:
if li[0] < li[1]:
cs.append(li[0])
cs.append(li[1])
else:
cs.append(li[1])
cs.append(li[0])
if i>=2:
for j in range(0,i):
if li[i]<cs[0]: #如果是当前cs内最小的
cs.append(li[i])
for m in range(1,len(cs)):
cs[-m],cs[-m-1]=cs[-m-1],cs[-m]
break
if li[i]>cs[i-1]: #如果是当前cs内最大的
cs.append(li[i])
break
if cs[j] < li[i] <cs[j+1] :
cs.append(li[i])
for k in range(1,len(cs)-j-1):
cs[-k],cs[-k-1]=cs[-k-1],cs[-k]
break
li[0:]=cs[0:] #排序后
print(li)
列表从大到小排序
#列表从大到小排序,不支持列表内有相同的元素
li=[1,3,6,5,4,9,8,20,10] #未排序
cs=[]
#先从小到大排序
for i in range(0,len(li)):
if i == 0:
if li[0] < li[1]:
cs.append(li[0])
cs.append(li[1])
else:
cs.append(li[1])
cs.append(li[0])
if i>=2:
for j in range(0,i):
if li[i]<cs[0]: #如果是当前cs内最小的
cs.append(li[i])
for m in range(1,len(cs)):
cs[-m],cs[-m-1]=cs[-m-1],cs[-m]
break
if li[i]>cs[i-1]: #如果是当前cs内最大的
cs.append(li[i])
break
if cs[j] < li[i] <cs[j+1] :
cs.append(li[i])
for k in range(1,len(cs)-j-1):
cs[-k],cs[-k-1]=cs[-k-1],cs[-k]
break
#反转,从大到小排序
n=0
for y in range(1,len(cs)):
for x in range(1,len(cs)-n):
cs[-x],cs[-x-1]=cs[-x-1],cs[-x]
print(cs)
n += 1
li[0:]=cs[0:] #排序后
print(li)