首页 > 编程语言 >python-列表排序

python-列表排序

时间:2022-11-04 11:10:42浏览次数:44  
标签:index arr python seat len gap 列表 li 排序


输入三个整数x, y, z,形成一个列表,请把这n个数由小到大输出

这就是要求升序排列,用之前写过几种方法

法一

#数组
li=[1,3,5,7,2,0]

# 用sort()排序
li_sort = sorted(li, reverse = False)
print('用sort方法,排列结果:{}'.format(li_sort))

法二:冒泡排序

# 冒泡排序
def bubbleSort(m):
m = m.copy()
for time in range(1, len(m)):
for index in range(len(m) - time):
if m[index] > m[index+1]:
m[index], m[index+1] = m[index+1] , m[index]
return m

print(bubbleSort(li))

法三:选择排序

# 选择排序
def selectSort(m):
m = m.copy()
for seat_L in range(len(m)-1):
for seat_R in range(seat_L+1, len(m)):
if m[seat_L] > m[seat_R]:
m[seat_L], m[seat_R] = m[seat_R], m[seat_L]
return m

print(selectSort(li))

法三:插入排序

def insertSort(m):
m = m.copy()
result = m[:1]
for index_choose in range(1, len(m)):
for index_insert in range(len(result) + 1):
print(result, index_insert,'\n',m, index_choose,'\n\n')
if index_insert != index_choose and m[index_choose] < result[index_insert]:
result.insert(index_insert, m[index_choose])
break
if index_insert == index_choose:
result.append(m[index_choose])
return result
print(insertSort(li))

法四:希尔排序

import math
def shellSort(arr):
gap=1
while(gap < len(arr)/3):
gap = gap*3+1
while gap > 0:
for i in range(gap,len(arr)):
temp = arr[i]
j = i-gap
while j >=0 and arr[j] > temp:
arr[j+gap]=arr[j]
j-=gap
arr[j+gap] = temp
gap = math.floor(gap/3)
return arr


标签:index,arr,python,seat,len,gap,列表,li,排序
From: https://blog.51cto.com/u_15861560/5822280

相关文章

  • python-将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
    分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。如果n!=k,但n能被k整除,则应打印出k的值,并......
  • python-练习
    Python实现秒表功能importtimeprint('按下回车开始计时,按下Ctrl+C停止计时')whileTrue:try:input()starttime=time.time()print('开......
  • python-requests的简单用法
    做一个总结~以便以后参考本文参考:​​​添加链接描述​​importrequestsGET请求eg:r=requests.get('http://httpbin.org/get')print(r.url)传参eg:load={'key1':'value1......
  • python-迭代器与生成器
    迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter()和next()。字符串,列表或元组对象都可用于创建......
  • python-求三角形的面积
    计算三角形的面积法一:#计算三角形的面积a=float(input('输入三角形第一边长:'))b=float(input('输入三角形第二边长:'))c=float(input('输入三角形第三边长:'))whilea......
  • python-当字符串为空则抛出异常
    今天有一个需求,判断字符串是否为空,为空则抛出异常python的异常有个大基类,承的是Exception。所以我们自定义类也必须继承Exception#最简单的自定义异常classFError(Exceptio......
  • Python-SMTP发送邮件
    之前学习过SMTP(SimpleMailTransferProtocol,知道是简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很......
  • python-二次方程
    导入cmath模块,计算复杂数学运算eg:我们计算二次方程式ax**2+bx+c=0代码如下:importcmatha=float(input('输入a:'))b=float(input('输入b:'))c=float(in......
  • Python yield 使用浅析
    之前了解了生成器的概念,带有yield的函数在Python中被称之为generator(生成器),那么应该什么时候使用呢?举个例子:简单输出斐波那契數列前N个数deffab(max):n,a,b=......
  • 按相反的顺序输出列表的值
    按相反的顺序输出列表的值法一:a=['one','two','three']foriina[::-1]:print(i)法二:a=['one','two','three']print(a[-1::-1])法三:使用reverse()list=['......