题目:
随机生成10个100以内的随机整数,要求按从小到大排序后输出
参考结果图如下:
方法一:python内置用法
import random
st=[]
temp=0
for i in range(10):
st.append(random.randint(0,101))
print('排序前:',st,end=' ')
print()
print('排序后:',sorted(st),end='')
方法二:选择排序
import random
st=[]
n=10
for p in range(10):
st.append(random.randint(0,101))
print('排序前:',end=' ')
for a in st:
print(a,end=' ')
print()
print('排序后:',end=' ')
for i in range (n-1):
k=i
for j in range(i+1,n):
if st[j]<st[k]:
k=j
if i!=k:
t=st[i]
st[i]=st[k]
st[k]=t
for m in st:
print(m,end=' ')
方法三:冒泡法
import random
st=[]
for i in range(10):
st.append(random.randint(0,101))
print('排序前:',end=' ')
for a in st:
print(a,end=' ')
print()
print('排序后:',end=' ')
for m in range(10):
for n in range(10-m-1):
if st[n]>st[n+1]:
tmp=st[n]
st[n]=st[n+1]
st[n+1]=tmp
for a in st:
print(a,end=' ')
方法四:插入排序
import random
aa=[]
n=10
for p in range(10):
aa.append(random.randint(0,101))
print('排序前:',end=' ')
for a in aa:
print(a,end=' ')
print()
print('排序后:',end=' ')
aa2=[aa[0]]
for i in range(1,n):
k=i
for j in range(len(aa2)):
if aa[i]<aa2[j]:
k=j
break
aa2.insert(k,aa[i])
for m in aa2:
print(m,end=' ')