python实现列表排序的各种方法
人生苦短,我用python。这话真实不虚。
今天面试遇到了一个搞java的面试官问我pyhton列表里取倒数第二个小的数,还不许用list自带的方法,我心说这是考我算法呢。。。一脸懵逼的样子
我还是得忽悠一下。。。还是把笔记补上吧
把这些算法先写上,说实话 ,我生写真写不来 。
冒泡排序
def bubble_sort(list):count = len(list)for i in range(count):for j in range(i + 1, count):if list[i] > list[j]:list[i], list[j] = list[j], list[i]return list
选择排序
def selection_sort(list):length = len(list)for i in range(length - 1, 0, -1):for j in range(i):if list[j] > list[i]:list[j], list[i] = list[i], list[j]return list
插入排序
def insert_sort(list):count = len(list)for i in range(1, count):key = list[i]j = i - 1while j >= 0:if list[j] > key:list[j + 1] = list[j]list[j] = keyj -= 1return list
快速排序
def quick_sort(list, left, right): if left >= right:return listkey = lists[left]low = lefthigh = rightwhile left < right:while left < right and list[right] >= key:right -= 1lists[left] = lists[right]while left < right and list[left] <= key:left += 1list[right] = list[left]list[right] = keyquick_sort(list, low, left - 1)quick_sort(list, left + 1, high)return listlst1 = raw_input().split() #调用函数
lst = [int(i) for i in lst1]
#lst = input()
quick_sort(lst,0,len(lst)-1)
for i in range(len(lst)):print lst[i],
希尔排序
def shell_sort(list):count = len(list)step = 2group = count / stepwhile group > 0:for i in range(group):j = i + groupwhile j < count:k = j - groupkey = list[j]while k >= 0:if list[k] > key:list[k + group] = list[k]list[k] = keyk -= groupj += groupgroup /= stepreturn list
这几个折磨人的看完了,我要放大招了
Python 列表有一个内置的 list.sort() 方法可以直接修改列表。
还有一个 sorted() 内置函数,它会从一个可迭代对象构建一个新的排序列表。
sort() 是应用在 list 上的方法,sorted() 可以对所有可迭代的对象进行排序操作。
list 的 sort() 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted() 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。
cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
data_lt.sort(reverse=True)
print(data_lt)new_list = sorted(data_lt, reverse=True)
print(new_list)
data_lt.reverse() # 列表反转
print(data_lt)
参考
https://www.jb51.net/article/181036.htm
python实现列表排序的各种方法相关推荐
- [转载] Python列表排序 list.sort方法和内置函数sorted
参考链接: Python中的函数 Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时 ...
- Python列表排序 list.sort方法和内置函数sorted
Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时候就可以使用list.sort方法 ...
- python基础-列表排序sort和sorted
[Python基础]列表排序sort和sorted 文章目录 [Python基础]列表排序sort和sorted 1. sort 2. sorted 3. 如何使用sort获得排序后的列表的副本呢? ...
- python大文件排序_Python如何实现大文件排序?Python大文件排序的实现方法
Python如何实现大文件排序?Python大文件排序的实现方法 本文实例讲述了Python实现大文件排序的方法.分享给大家供大家参考.具体实现方法如下: import gzip import os ...
- python求列表list平均值的方法
python求列表list平均值的步骤 python内置了两个函数,sum()和len()方法,其中sum()可以用于求取列表的元素和,len()函数可以用于求取列表list元素的个数,由此,利用py ...
- 【Python】列表排序,用 sort() 还是 sorted()?
内容提要:本文比较了 Python 中用于列表排序的两种函数 sort() 和 sorted(),帮助您选择合适的排序函数. 对列表排序时,既可以用 List.sort(),也可以用 sorted(L ...
- python编写列表排序函数_python序列列表怎么排序?
Python序列中的列表怎么排序? 1.sort方法排序原址排序list.sort(key=None,reverse=False(or True)) 当reverse=False时:为正向排序: 当r ...
- python删除列表元素的所有方法_python 列表删除所有指定元素的方法
python 列表删除所有指定元素的方法 如下所示: a = [1,1,1,2,3,45,1,2,1] a.remove(1) result: [1,1,2,3,45,1,2,1] while 1 i ...
- python list列表排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
最新文章
- 下列哪项能正确遍历文件夹内所有文件?
- 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作...
- Python+pandas处理Excel文件案例一则
- DMA访问(直接内存访问)
- NHibernate从入门到精通系列(3)——第一个NHibernate应用程序
- eclipse基础环境搭建(含Tomcat、maven)
- 关于高通平台9008线刷的一些注意点,供小白食用。
- mysql 拖库_【渗透测试】温故知新之拖库七种方法
- mysql调查问卷数据库设计_客服-问卷调查-问题答案表 - 数据库设计 - 数据库表结构 - 果创云...
- 机电大作业(第一阶段)
- 我们分析了10000条视频,终于知道了今日头条推荐系统的秘密
- html让字数超过多少,css强制省略号 css设置超过多少个字显示省略号
- 淘客链接转成正常淘宝链接JAVA代码实现
- (一)生成器详解——简单生成器
- Jenkins版本回退
- 1.两数之和(python)
- H.265视频流媒体EasyPlayer播放器无法禁用自动播放的问题修复
- C# Redis使用及帮助类
- [FAQ09811][NW]如何区分MNO和MVNO
- 谷歌云端硬盘下载文件_如何使用Google云端硬盘中的Microsoft Office文件
热门文章
- 无尽之海的奥秘:AI会成为临海区域下一个经济增长点吗?
- 学Python不知从何下手?Python技能树助力一臂之力|Python技能树测评
- 戴尔13G阵列卡做热备硬盘教程
- 怎样在文章末尾添加尾注(将尾注的数字变为方括号加数字)
- C/C++中的断言(assert与static_assert)
- 益百分 据传销售品牌焕发新姿
- @Qualifier注解
- 语法检查的重要步骤,这7点尤为重要
- ajax请求设置同步,ajax 设置同步
- 服务器端口增加白名单设置,使用ipset设置防火墙端口白名单,只让指定国家访问...