1.二分查找

只能用二分查找查找有序列表

def bin_search(data,val):  #data为被查找的列表,val是要查找的值low = 0high = len(data) - 1while low <= high:mid = (low+high)//2if data[mid] == val:return mid           #找到了,返回val所在的索引elif data[mid] < val:low = mid + 1else:high = mid - 1return                        #未找到,返回None

二分查找

2.冒泡排序

def bubble_sort(data):                   #data传需要排序的列表for i in range(len(data)-1):FLAG = 0for j in range(len(data)-i-1):if data[j] > data[j+1]:data[j],data[j+1] = data[j+1],data[j]FLAG = 1if FLAG == 0:break

冒泡排序

3.选择排序

def select_sort(data):for i in range(len(data)-1):min = ifor j in range(i+1,len(data)):if data[j] < data[min]:min = jdata[i],data[min] = data[min],data[i]

选择排序

4.插入排序

def insert_sort(data):for i in range(1,len(data)):tmp = data[i]j = i - 1while j >= 0 and data[j] > tmp:data[j+1] = data[j]j = j - 1data[j + 1] = tmp

插入排序

5.快速排序

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 -= 1data[left] = data[right]while left < right and data[left] <= tmp:left += 1data[right] = data[left]data[left] = tmpreturn left

快速排序

6.堆排序

def sift(data,low,high):i = lowj = 2 * i +1tmp = data[i]while j <= high:if j + 1 <= high and data[j] < data[j+1]:j += 1if data[j] > tmp:data[i] = data[j]i = jj = 2 * i + 1else:breakdata[i] = tmpdef heap_sort(data):n = len(data)for i in range(n // 2 - 1 ,-1 ,-1):sift(data,i,n-1)for i in range(n-1,-1,-1):data[0],data[i] = data[i],data[0]sift(data,0,i-1)

堆排序

7.归并排序

def merge(data,low,mid,high):i = lowj = mid+1tmp = []while i <= mid and j <= high:if data[i] < data[j]:tmp.append(data[i])i += 1else:tmp.append(data[j])j += 1while i <= mid:tmp.append(data[i])i += 1while j <= high:tmp.append(data[j])j += 1data[low:high+1] = tmpdef mergesort(data,low,high):if low < high:mid = (low+high)//2mergesort(data,low,mid)mergesort(data,mid+1,high)merge(data,low,mid,high)

归并排序

转载于:https://www.cnblogs.com/zy516563199/p/7453605.html

Python学习笔记19(算法)相关推荐

  1. Python学习笔记19:列表 III

    Python学习笔记19:列表 III 其实这篇笔记标题应该是列表扩展,从列表开始,将涵盖Python中的序列容器. 关于列表的基础知识,可以看我的前两篇文章: Python学习笔记1:列表. Pyt ...

  2. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  3. Python学习笔记第二十九天(N维数组(ndarray))

    Python学习笔记第二十九天 N维数组(ndarray) 构建阵列 索引阵列 ndarray的内部内存布局 阵列属性 内存布局 数据类型 其他属性 阵列接口 ctypes外部功能接口 Array方法 ...

  4. OpenCV之Python学习笔记

    RSS订阅 登陆 注册 原文链接地址:http://www.itozi.net/19477.html OpenCV之Python学习笔记 ITOZI 发布于 2015-08-06 分类:OpenSta ...

  5. PYTHON学习笔记之(一)2020.08

    PYTHON学习笔记之(一)2020.08 Python基础 数据类型 常见的列表.字典,以及元组.集合. 1 列表 list 1.1 列表转换字符串 stu = ['王一', '李二', '张三'] ...

  6. Python 学习笔记——入门

    文章目录 〇.Python 是什么 一.推荐的教程 二.这篇学习笔记适合什么人 三.环境 1. 操作系统 对于 Windows 对于 Ubuntu 对于其他操作系统 2. Python 对于 Wind ...

  7. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  8. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  9. python 学习笔记 12 -- 写一个脚本获取城市天气信息

    近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

最新文章

  1. python爬虫可以干什么-python爬虫能够干什么
  2. PhpStrom 常用的插件
  3. (原创)7-1 银行业务队列简单模拟 (30 分)
  4. boost::hana::eval用法的测试程序
  5. Java多线程(3) Volatile的实现原理
  6. 判断listview是上滑还是下滑的方法
  7. php开发总结,PHP开发规范总结
  8. 手把手教程 Sublime Text 删除重复行
  9. 矩池云使用conda安装离线安装包
  10. 程序员面试金典——5.1二进制插入
  11. MybatisPlus自定义sql分页查询
  12. 操作系统实验报告清华大学LAB1
  13. vue代码怎么变成小程序_从项目中由浅入深的学习vue,微信小程序和快应用 (1)
  14. PCL教程-PCLVisualizer可视化类的使用
  15. 浪潮服务器【磁盘阵列】故障修复
  16. SAP 批量导出客户主数据
  17. 基于飞桨本地ocr安卓按键插件
  18. CleanMyMac XMac苹果电脑专属系统优化工具
  19. php导出excel无边框线,phpexcel设置边框不全或者只有竖线问题解决方法
  20. 深度学习巨头—杨立昆

热门文章

  1. Jsp2.0自定义标签(第二天)——自定义循环标签
  2. 强大的CSS3动画库animate.css
  3. HDU 1203 I NEED A OFFER!(01背包)
  4. 应用程序的主入口点应用程序的主入口点应用程序的主入口点
  5. 北航教授李波:说AI会有低潮就是胡扯,这是人类长期的追求
  6. POJ - 3257 Cow Roller Coaster (背包)
  7. 在Hadoop上运行基于RMM中文分词算法的MapReduce程序
  8. unity中脚本编辑器UnIDE
  9. UVa 10026 - Shoemaker's Problem
  10. opencv 在debian6.0下安装