python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;2、插入排序,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

1、冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

def bubble_sort(list):

n = len(list)

for i in range(n - 1):

for j in range( 0,n - 1 - i):

if list[j] > list[j + 1]:

list[j], list[j + 1] = list[j + 1], list[j]

# if list[i] > list[i + 1]:

# list[i], list[i + 1] = list[i + 1], list[i]

print(list)

list=[2,4,6,8,1,3,5,7,9]

bubble_sort(list)

#结果:[1,2,3,4,5,6,7,8,9]

2、插入排序

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前的扫描过程中,需要把已排序元素逐步向后挪位,为最新元素提供插入空间。

def insertion_sort(list):

n = len(list)

for i in range(1, n):

for j in range(i, 0, -1):

if list[j] < list[j - 1]:

list[j], list[j - 1] = list[j - 1], list[j]

else:

break

print(list)

insertion_sort([3,0,2,5,8,5,9,41,0,1,6])

#结果:[0, 0, 1, 2, 3, 5, 5, 6, 8, 9, 41]

3、选择排序

选择排序(Selection Sort )是一种简单直观的排序算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素。放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。def selection_sort(list):

n = len(list)

for i in range(0, n -1):

min_index = i

for j in range(i + 1, n):

if list[min_index] > list[j]:

min_index = j

if i != min_index:

list[min_index], list[i] = list[i], list[min_index]

print(list)

selection_sort([5,9,6,42,9,4,66,2,3,0,1])

#结果:0, 1, 2, 3, 4, 5, 6, 9, 9, 42, 66]

总结:import random

# 随机生成1-1000之间无序序列整数数据

def generator():

random_data = []

for i in range( 0, 10 ):

random_data.append( random.randint( 1, 1000 ) )

return random_data

# 冒泡排序

def bubble_sort(list):

# 序列长度

n = len( list )

for i in range( 0, n ):

for j in range( i , n ):

if list[i] > list[j]:

list[i], list[j] = list[j], list[i]

return list

# 选择排序

def selection_sort(list):

n = len(list)

for i in range(0, n -1):

min_index = i

for j in range(i + 1, n):

if list[min_index] > list[j]:

min_index = j

if i != min_index:

list[min_index], list[i] = list[i], list[min_index]

return list

#插入排序

def insertion_sort(list):

n = len(list)

for i in range(1, n):

for j in range(i, 0, -1):

if list[j] < list[j - 1]:

list[j], list[j - 1] = list[j - 1], list[j]

else:

break

return list

if __name__ == "__main__":

# 生成随机无序数据

list = generator()

# 打印无序数据

print( '随机生成的无序数据:',list )

# 冒泡排序

sorted_data = bubble_sort( list )

#插入排序

insertion_data=insertion_sort(list)

#选择排序

selection_data=selection_sort( list )

# 打印排序结果

print( '冒泡排序:',sorted_data )

print( '插入排序:', insertion_data )

print( '选择排序:', selection_data )

'''

结果:

随机生成的无序数据: [300, 517, 591, 209, 204, 789, 417, 739, 803, 393]

冒泡排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]

插入排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]

选择排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]

'''想了解更多编程学习,敬请关注php培训栏目!

python 列表排序_python列表排序有哪些相关推荐

  1. python定义一个函数列表排序_Python 列表(修改、添加、删除、排序)

    Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据.在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中的Pytho ...

  2. python列表反向排序_Python 列表排序方法reverse、sort、sorted详解

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  3. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  4. python sorted下标_Python列表操作最全面总结

    1.列表添加元素 列表中可以使用append.insert.extend方法实现元素的添加. append会把新元素添加到列表末尾 "a", insert(index, objec ...

  5. python索引用法_python 列表索引问题

    展开全部 数据结构是通e5a48de588b63231313335323631343130323136353331333363366261过某种方式组织在一起的数据元素的集合.在python中,最基本 ...

  6. python怎么去重_python列表如何去重

    python列表去重的方法:1.利用字典的fromkeys()和keys()方法去重:2.集合的可迭代方法:3.用for循环,代码为[for x in L3:if x not in L4:L4.app ...

  7. python 列表拆分_python列表拆分

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我对python很新,但我遇到了问题. 我有一个看起来像列表的文本文件. 例如: ...

  8. python数字排序_python数字排序

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 例如,你想要按照名字来对一列团队成员名单进行排序,或者想按照优先级来对一列项目进 ...

  9. python列表去重_python列表去重

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 方法一:利用集合去重 # ! usrbinpython3# -*- coding ...

  10. python列表乘法运算_Python列表基本运算和元组

    成员运算符 in 我们用它来判断指定字符串是否包含某些字符,现在我们用来判断一个元素是否在一个列表中,格式为 元素 in 列表.这是一个布尔表达式,如果元素在列表中,结果为布尔值 True,反之为 F ...

最新文章

  1. 高并发下接口幂等性技术方案
  2. 10行Python代码自动清理电脑内重复文件,释放双手!
  3. sentinel限流_微服务架构进阶:Sentinel实现服务限流、熔断与降级
  4. Microsoft 服务器产品端口
  5. 《乔布斯传》读后感---成功的启示
  6. 深度探索C++ 对象模型(5)-Initialization list(3)
  7. java怎么给类中的私有变量赋值_Java学习笔记分享 如何理解接口抽象类和关键字...
  8. select、poll、epoll 比较
  9. 【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环
  10. bzoj千题计划287:bzoj1228: [SDOI2009]ED
  11. python降维可视化 自编码_deep learning 自编码算法详细理解与代码实现(超详细)...
  12. 项目中的每个层的理念是什么?
  13. 射频微电子学_越老越吃香的射频工程师,如何才能成为一个出色的射频工程师?...
  14. html工资计算页面模板,工资计算.html
  15. VMware copy之后,如何查看网卡地址 HWADDR
  16. STM32F103 DMA方式GPIO输出
  17. Python 第五篇 自制数字贺卡
  18. and什么意思计算机SQL,SQL语句中 AND和OR的区别,or是什么意思,那and和它有什么区别?...
  19. 路由器外接硬盘做nas可行吗?
  20. 处理火狐浏览器播放哔哩哔哩(BiliBili)视频时无法倍速问题

热门文章

  1. 和菜鸟一起学android4.0.3源码之USB wifi移植心得
  2. cshop是什么开发语言_Fecshop 多语言
  3. 停车场车辆计数案例---以西门子1200PLC演示
  4. 安卓系统控制服务器,安卓系统远程控制云服务器
  5. pdf怎么拆分成几个部分?怎么拆分pdf中的一部分?
  6. Android wifi信号强度与图标对应关系
  7. STM32L4的待机模式闹钟唤醒方法
  8. Camera sensor 基本知识
  9. 葡聚糖修饰金纳米颗粒(Dex-AuNps)|聚环氧氯丙烷二甲胺修饰多孔磁性葡聚糖微球
  10. X线DR医学图像 --- DR医用滤线栅及摩尔纹详解 (五) 消除摩尔纹