a = 0
lst = [13,5,1,7,2,6,4,5,6]
while a < len(lst): # 控制次数
for i in range(len(lst)-1):
if lst[i] > lst[i+1]: # 如果前一个数比后一个大,则向后移.
lst[i],lst[i+1] = lst[i+1],lst[i] # 以此类推
a += 1
print(lst)
lst = [22,33,44,55,66,77,88,99,101,238,345,456,567,678,789]
def func(n,left,right):
if left <= right: # 控制次数
mid = (left + right) // 2 # 进行二分
if n > lst[mid]: # 判断数字位置
left = mid + 1
return func(n,left,right) # 递归
elif n < lst[mid]: # 判断数字位置
right = mid - 1
return func(n,left,right) # 递归
elif n == lst[mid]:
print('找到了')
return mid # 输出索引
else:
print('没找到')
return -1 # 返回值 '-1' 可继续进行操作
r = func(345,0,len(lst)-1)
print(r)

python 冒泡排序,二分法的更多相关文章

  1. python冒泡排序算法的实现代码

    python冒泡排序算法的实现代码 这篇文章主要介绍了python冒泡排序算法的实现代码,大家参考使用 1.算法描述: (1)共循环 n-1 次 (2)每次循环中,如果 前面的数大于后面的数,就交换 ...

  2. Python递归二分法

    # lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963] # 时间复杂度. n# # 让用户输入一个数n. 判断这个n是否出现在lst中# n = ...

  3. 冒泡排序的思想 python 冒泡排序、递归排序

    冒泡排序的时间复杂度是O(N^2) 冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置 比如有五个数: 12, 35, 99, 18, 76, 从大到小排序, 对相邻的两位 ...

  4. python 冒泡排序,快排

    一.冒泡排序 1.1.冒泡的原理 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的 ...

  5. 使用python实现二分法查找

    最近开始学习mit的python课程,其中手工实现的一个关于二分法查找的练习代码个人感觉比较有参考价值,贴上来分享交流一下. 主要功能是在1-100中自己猜测一个数值,随后系统产生数值看是否符合猜测, ...

  6. python实现二分法

    前言: 二分法主要是用来查找位置的id,每次能够排除掉一半的数据,查找的效率非常高,但是局限性比较大. 必须是有序序列才可以使用二分查找. 原理 首先,假设表中元素是按升序排列,将表中间位置记录的关键 ...

  7. Python—冒泡排序算法

    冒泡排序 一,介绍 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再 ...

  8. python之二分法求平方根

    前几天学完python的程序分支结构后,老师课后留了一个问题,用两种方法计算一个大于或等于 1 的实数 n 数的平方根. 描述设计一个用二分法计算一个大于或等于 1 的实数 n 的平方根的函数sqrt ...

  9. Python冒泡排序算法及其优化

    冒泡排序 所谓冒泡,就是将元素两两之间进行比较,谁大就往后移动,直到将最大的元素排到最后面,接着再循环一趟,从头开始进行两两比较,而上一趟已经排好的那个元素就不用进行比较了.(图中排好序的元素标记为黄 ...

随机推荐

  1. is null 和=null的区别

    数据库中 null 表示 不可知,不确定 所以 判断都用 字段 is null的方式进行判断 而 = null .<> null 的判断结果,仍然是不可知,不确定,所以 不会返回任何结果. ...

  2. kibana安装

    kibana,ELK中的K,主要为ES提供界面化操作,据说还是比较炫的,今天安装5.5.2版本进行尝试一把. 安装过程不难,简单的配置了一下端口和IP即可,难度不大. config下的kibana.y ...

  3. 2018-2019-2 网络对抗技术 20165202 Exp6 信息搜集与漏洞扫描

    博客目录 一.实践目标 二.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描:会扫,会看报告,会查漏洞说明,会 ...

  4. 2017-2018-2 20165202 实验四《Android程序设计》实验报告

    一.实验报告封面 二.实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握Android中事件处理机制. ...

  5. c# 验证码图片生成类

    using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D ...

  6. ss-libev 源码解析udp篇 (4)

    本篇分析remote_recv_cb,这是整个udp转发的反方向,即读取从后端发送过来的数据再发送给前端.对于ss-server,读取到的数据是目标地址的udp服务器发送回来的响应数据,ss-serv ...

  7. 关于鼠标不敏感导致自以为ubuntu很怪的问题

    你要相信自己拥有的确实是一个垃圾鼠标,而不要以为复制和粘贴有感觉控制不住.

  8. js之放大镜效果

      HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  9. 【剑指offer】不使用除法,构建乘积数组,C++实现

    # 题目 # 思路 设C[i] = A[0] * A[1] * - * A[i-1],D[i] =  A[i+1] * - * A[n-1],则C[i]按照从上到下的顺序计算,即C[i] = C[i- ...

  10. autoconf / automake工具使用介绍

    本文转自:http://blog.csdn.net/gulansheng/article/details/42683809 一.简介 作为Linux下的程序开发人员,一定都遇到过Makefile,用m ...