数据结构与算法--6.二分查找

文章目录

  • 一. 二分查找
  • 二. 代码实现一:使用递归
  • 三. 代码实现二:非递归

一. 二分查找

在这里插入图片描述
在这里插入图片描述

二. 代码实现一:使用递归

def binary_search(alist, item):"""二分查找:使用递归"""n = len(alist)if n > 0:mid = n // 2if alist[mid] == item:return Trueelif item < alist[mid]:return binary_search(alist[:mid],item)else:return binary_search(alist[mid+1:],item)return Falseif __name__ == '__main__':li = [17,20,26,31,44,54,55,77,93]print(binary_search(li,55))print(binary_search(li,100))

三. 代码实现二:非递归

def binary_search_2(alist,item):"""二分查找:非递归"""n = len(alist)first = 0last = n-1while first <= last:mid = (first + last)//2if alist[mid] == item:return Trueelif item < alist[mid]:last = mid-1else:first = mid + 1return Falseif __name__ == '__main__':li = [17,20,26,31,44,54,55,77,93]print(binary_search_2(li,55))print(binary_search_2(li,100))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC请求处理流程、springMVC工作流程

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 页面请求到来 --> 前端控制器&#xff08;DispatcherServlet&#xff09;收到请求&#xff0c;请求 处理映射器&#xff08;Hanle…

数据结构与算法--7.树的基础知识

文章目录一. 树的概念二. 树的术语三. 树的种类四. 树的存储和表示五. 常见的树的应用场景一. 树的概念 二. 树的术语 三. 树的种类 四. 树的存储和表示 五. 常见的树的应用场景

数据结构与算法--8.二叉树的基础知识

文章目录一. 二叉树基本概念二. 二叉树的性质三. 二叉树的代码实现四. 二叉树的先序、中序、后序遍历一. 二叉树基本概念 二. 二叉树的性质 三. 二叉树的代码实现 class Node(object):"""二叉树节点"""def __init__(self,item):self.elem item…

ZooKeeper(二)ZooKeeper能做什么?

上一节介绍了ZooKeeper的一些基础知识&#xff0c;这一节主要讲ZooKeeper有哪些用途。命名服务&#xff08;Name Service&#xff09; 主要是作为分布式命名服务&#xff0c;通过调用zk的create node api&#xff0c;能够很容易创建一个全局唯一的path&#xff0c;这个path就可…

jquery vilidate 使用小例

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 // 修改$("#updForm").validate({submitHandler:function(form){new $.flavr({ content : 是否确认修改管理员?,dialog : co…

Spring声明式事务管理、事务的传播行为xml配置

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. <tx:method name"insert*" propagation"REQUIRED" />中name的值是ServiceImpl中各个要加入事物管理的方法…

数据结构与算法--9.常见时间复杂度及其之间的关系

文章目录1.常见时间复杂度2.常见时间复杂度之间的关系1.常见时间复杂度 2.常见时间复杂度之间的关系

CodeIgniter中运用composer安装依赖包

2019独角兽企业重金招聘Python工程师标准>>> 基本信息 CodeIgniter 版本&#xff1a;3.1.8Nginx&#xff1a; Tengine/2.1.2 (nginx/1.6.2)MySQL&#xff1a; Ver 14.14 Distrib 5.6.33, for Linux (x86_64) using EditLine wrapperPHP&#xff1a; 5.6.30Zend Engi…

shiro管理下MD5加密的使用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 正文&#xff1a; package com.service.impl;import java.util.ArrayList;import java.util.List;import javax.annotation.Resource…

scanf 输入加逗号(或者不加逗号)出现的异常及解决方案

我们在写 C 语言代码通常 scanf 的格式控制部分都有两种习惯&#xff0c;加逗号与不加逗号&#xff0c;而这两种情况都会因为我们的不同输入习惯产生一定的问题&#xff0c;这里给出另一种方法。 1、不加逗号 1 #include<stdio.h>2 3 #define SWAP(a, b) aa^b;ba^b;aa^b;…

树链剖分入门

这几天学了一个树链剖分&#xff0c;觉得还不是很难&#xff0c;这里我试着讲一讲吧。 首先&#xff0c;我认为树链剖分是把在树上一个节点一个节点的走改为按照某种规则跳&#xff0c;从而降低了时间复杂度。 那这是什么规则呢&#xff1f; 首先我们得知道什么是重链&#xff…

学成在线--23.课程图片管理(上传图片)

文章目录一. 需求分析1). 需求分析2). 图片上传流程二. 创建文件系统服务工程1). 工程目录结构2). 项目依赖pom.xml3). 配置文件application.yml三. 后端开发1. 模型类1). 模型类2). Collection2. Api接口3. Dao4. Service5. Controller6. 测试四. 前端开发1. 需求2. 页面1). T…

13个超棒的代码资源网站推荐

很多开发者都有过网站开发的经历&#xff0c;大家使用CSS、HTML以及JavaScript等技术来完成这一工作。但想必大家也知道&#xff0c;网站开发是一个很耗费时间的工作。你可能需要花费大量的时间在一些网站上寻找解决问题的代码段。这的确很耗费时间&#xff0c;但却几乎又是不可…

Jquery Datatable的使用样例(ssm+bootstrsp框架下)服务器端分页

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 效果&#xff1a; 我这个表格数据 比较少没有第2页 有多例多页的效果&#xff08;带滚动条和翻页&#xff09;&#xff1a; 1. jsp页面…

学成在线--24.课程图片管理(保存课程图片)

文章目录一. 需求分析二. 服务端开发1. 模型类2. API3. Dao4. Service5. Controller三. 前端开发1. API2. 页面1). 添加上传成功的钩子 :on-success"handleSuccess"2). 在钩子方法 中保存课程图片信息一. 需求分析 图片上传到文件系统后&#xff0c;其它子系统如果想…