【练习4】四种解法搞定python数据排序问题

题目:

随机生成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=' ')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值