复习:

  1.递归

  • 调用自身
  • 结束条件

一、冒泡算法

 def bubble_sort(numbs):
for i in range(len(numbs)-1): # 这个循环负责设置冒泡排序进行的次数。
for j in range(len(numbs)-i-1): # j为列表索引, -1为了报错IndexError: list index out of range
if numbs[j] > numbs[j+1]:
numbs[j], numbs[j+1] = numbs[j+1], numbs[j]
return numbs
nums = [5,2,45,6,8,2,1] print(bubble_sort(nums))

bubble_sort

二、冒泡优化版

 def bubble_sort(numbs):
for i in range(len(numbs)-): # 这个循环负责设置冒泡排序进行的次数。
exchange = False
for j in range(len(numbs)-i-): # j为列表索引, -1为了报错IndexError: list index out of range
if numbs[j] > numbs[j+]:
numbs[j], numbs[j+] = numbs[j+], numbs[j]
exchange = True
if not exchange:
break
return numbs
nums = [,,,,,,] print(bubble_sort(nums)) bubble_sort

三、快排

 import random
import time def quick_sort_(data, left, right):
if left < right:
mid = partition(data, left, right)
quick_sort_(data, left, mid - 1)
quick_sort_(data, mid + 1, right) def partition(data, left, right):
tmp = data[left] # 拿到最左边的数
while left < right: # 左右不碰的时候一直走。
while left < right and data[right] >= tmp: # 从右边找
right -= 1 # 如果右边的大,右边向左移
data[left] = data[right] # 如果右边的小,移到左边去。
while left < right and data[left] <= tmp: # 从左边找
left += 1
data[right] = data[left]
data[left] = tmp # 左右碰上了,就把TMP放回来
return left # 返回mid def quick_sort(data):
return quick_sort_(data, 0, len(data)-1) data = list(range(10000))
random.shuffle(data)
quick_sort(data)

quick_sort

最新文章

  1. IOS中的Block与C++11中的lambda
  2. 设置UIButton或者UILabel显示文字的行数
  3. cocosstdio之字体之文本和FNT字体
  4. 人人网的账号登录及api操作
  5. Spring Boot中使用Swagger2构建强大的RESTful API文档
  6. 广度优先搜索 codevs 2806 红与黑
  7. C和指针笔记 3.6链接属性
  8. UVA 10499 (13.08.06)
  9. Window7 下开发php扩展
  10. MSSQL 标准PROC 写法
  11. http soap关系
  12. hibernate异常:org.hibernate.exception.GenericJDBCException
  13. 第11天:JS中变量、字符串基础知识
  14. mysql5.7中解决中文乱码的问题
  15. PHP 安装
  16. 下载 mysql 数据库 的步骤 完整版
  17. 移动端遮罩及阻止页面滑动,实用!!! 我们经常做一个fixed定位的遮罩和一个提示弹框,这时就要用到。记录--
  18. 数据结构与算法JS实现
  19. java获取本机ip(排除虚拟机等一些ip)最终解,总算找到方法了
  20. Python包的相对导入时出现问题解决

热门文章

  1. easyui_datagrid合并行单击某行选中所有
  2. ubuntu下vim配置(刷题和比赛两套)
  3. IOS中数组的使用(NSArray, NSSet, NSDictionary)
  4. MQTT-SN协议乱翻之消息格式
  5. LeetCode——Largest Number
  6. 浅析HTTPS与SSL原理
  7. 【Android N 7.1.1】 处于锁屏界面时可以转屏
  8. SNMP信息泄露漏洞
  9. Microsoft Web Application Stress Tool 使用
  10. mongodb实现对某列求和SUM