人生苦短,我用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实现列表排序的各种方法相关推荐

  1. [转载] Python列表排序 list.sort方法和内置函数sorted

    参考链接: Python中的函数 Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时 ...

  2. Python列表排序 list.sort方法和内置函数sorted

    Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时候就可以使用list.sort方法 ...

  3. python基础-列表排序sort和sorted

    [Python基础]列表排序sort和sorted 文章目录 [Python基础]列表排序sort和sorted 1. sort 2. sorted 3. 如何使用sort获得排序后的列表的副本呢? ...

  4. python大文件排序_Python如何实现大文件排序?Python大文件排序的实现方法

    Python如何实现大文件排序?Python大文件排序的实现方法 本文实例讲述了Python实现大文件排序的方法.分享给大家供大家参考.具体实现方法如下: import gzip import os ...

  5. python求列表list平均值的方法

    python求列表list平均值的步骤 python内置了两个函数,sum()和len()方法,其中sum()可以用于求取列表的元素和,len()函数可以用于求取列表list元素的个数,由此,利用py ...

  6. 【Python】列表排序,用 sort() 还是 sorted()?

    内容提要:本文比较了 Python 中用于列表排序的两种函数 sort() 和 sorted(),帮助您选择合适的排序函数. 对列表排序时,既可以用 List.sort(),也可以用 sorted(L ...

  7. python编写列表排序函数_python序列列表怎么排序?

    Python序列中的列表怎么排序? 1.sort方法排序原址排序list.sort(key=None,reverse=False(or True)) 当reverse=False时:为正向排序: 当r ...

  8. 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 ...

  9. python list列表排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...

最新文章

  1. 下列哪项能正确遍历文件夹内所有文件?
  2. 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作...
  3. Python+pandas处理Excel文件案例一则
  4. DMA访问(直接内存访问)
  5. NHibernate从入门到精通系列(3)——第一个NHibernate应用程序
  6. eclipse基础环境搭建(含Tomcat、maven)
  7. 关于高通平台9008线刷的一些注意点,供小白食用。
  8. mysql 拖库_【渗透测试】温故知新之拖库七种方法
  9. mysql调查问卷数据库设计_客服-问卷调查-问题答案表 - 数据库设计 - 数据库表结构 - 果创云...
  10. 机电大作业(第一阶段)
  11. 我们分析了10000条视频,终于知道了今日头条推荐系统的秘密
  12. html让字数超过多少,css强制省略号 css设置超过多少个字显示省略号
  13. 淘客链接转成正常淘宝链接JAVA代码实现
  14. (一)生成器详解——简单生成器
  15. Jenkins版本回退
  16. 1.两数之和(python)
  17. H.265视频流媒体EasyPlayer播放器无法禁用自动播放的问题修复
  18. C# Redis使用及帮助类
  19. [FAQ09811][NW]如何区分MNO和MVNO
  20. 谷歌云端硬盘下载文件_如何使用Google云端硬盘中的Microsoft Office文件

热门文章

  1. 无尽之海的奥秘:AI会成为临海区域下一个经济增长点吗?
  2. 学Python不知从何下手?Python技能树助力一臂之力|Python技能树测评
  3. 戴尔13G阵列卡做热备硬盘教程
  4. 怎样在文章末尾添加尾注(将尾注的数字变为方括号加数字)
  5. C/C++中的断言(assert与static_assert)
  6. 益百分 据传销售品牌焕发新姿
  7. @Qualifier注解
  8. 语法检查的重要步骤,这7点尤为重要
  9. ajax请求设置同步,ajax 设置同步
  10. 服务器端口增加白名单设置,使用ipset设置防火墙端口白名单,只让指定国家访问...