python算法&二分查找法
import random def random_list(n):
result = []
ids = list(range(1001,1001+n))
a1 = ["赵","钱","孙","李","周","吴","郑","王","冯","陈","褚","卫","蒋","沈","韩","杨","朱","秦","尤","许","何","吕","施","张"]
a2 = ["","明","俊","辞","泽","鹏","振","镇","苗","华","国","澄","邈","德","泽","海","超","曦","阳","荣","逸","昌","钰","玥""菲","雯","嘉","麟","芸","希","瀚"]
a3 = ["克","智","诚","宇","华","","杰","天","锋","巍","荣","凯","海","瑶","涵","雅","晨","曦","麟","炜","茜","萱","玥","菲","雯","嘉","麟","芸","希","瀚"]
for i in range(n):
age = random.randint(18,60)
id = ids [i]
name = random.choice(a1)+random.choice(a2)+random.choice(a3)
dict = {"id":id,"name":name,"age":age}
result.append(dict)
return result '''
输入学生id,输出该学生在列表中的下标,并输出完整学生信息
'''
def bin_search(data_set,val):
low = 0
high = len(data_set) - 1
while low <= high :
mid = (low + high) // 2
if data_set[mid]["id"] == val:
return data_set[mid]
elif data_set[mid]["id"] > val:
high = mid - 1
else:
low = mid + 1
return
userlist = random_list(100)
u = bin_search(userlist,1051)
print(u)
python算法&二分查找法的更多相关文章
- Java-数据结构与算法-二分查找法
1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: package Test; import java.util.Arrays; public class BinarySe ...
- 基于Python实现二分查找法实战
二分查找法实战 def binary_search(datasets, find_in): mid = int(len(datasets)/2) if(mid>0): if(find_in> ...
- 数据机构-折半查找法(二分查找法)-Python实现
Python实现二分查找法(基于顺序表) class List: elem=[] #存储顺序表元素 last=-1 #设置初始为-1 SeqList = List() #创建一个顺序表 print(& ...
- js 二分查找法之每日一更
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...
- python实现二分查找算法
二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法.搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束:如果查找的数大于中间数,则在数组 ...
- python 全栈开发,Day15(递归函数,二分查找法)
一.递归函数 江湖上流传这这样一句话叫做:人理解循环,神理解递归.所以你可别小看了递归函数,很多人被拦在大神的门槛外这么多年,就是因为没能领悟递归的真谛. 递归函数:在一个函数里执行再调用这个函数本身 ...
- 数据结构和算法:Python实现二分查找(Binary_search)
在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...
- javascript数据结构与算法---检索算法(二分查找法、计算重复次数)
javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){ if ( ...
- 【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC
[送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. ...
随机推荐
- 【Java】+SOFA
https://www.jianshu.com/p/e3dca8d5e9ee sofa脑图
- Django Rest Framework(二)
•基于Django 先创建一个django项目,在项目中创建一些表,用来测试rest framework的各种组件 models.py class UserInfo(models.Model): &q ...
- 洛谷 P1962 斐波那契数列
题目链接:https://www.luogu.org/problemnew/show/P1962 题目大意: 略 分析: 由于数据规模很大,需要用矩阵快速幂来解. 代码如下: #pragma GCC ...
- mysql时间比较
' and ZXBZ ='Y' AND SQRQ >= '2017-04-28 00:00:00' AND SQRQ <= '2017-04-28 23:59:59'; ;
- Linux(Ubuntu)使用日记------Mysql编码(utf-8)的设置
Mysq版本:5.7.21 操作系统:Linux(Ubuntu) 整个操作的基本思路如下(包括问题的解决思路,想要直接解决问题的可以先看最后的命令总结) 检查mysql编码 找到Mysql的配置文件 ...
- python之路8-内置模块介绍
time & datetime模块 1 #_*_coding:utf-8_*_ 2 __author__ = 'Alex Li' 3 4 import time 5 6 7 # print(t ...
- 仿 ELEMENTUI 实现一个简单的 Form 表单
原文:仿 ElmentUI 实现一个 Form 表单 一.目标 ElementUI 中 Form 组件主要有以下 功能 / 模块: Form FormItem Input 表单验证 在这套组件中,有 ...
- springboot全局捕获异常
捕获 捕获原理,使用AOP技术,采用异常通知. 1.捕获返回json格式 2.捕获返回页面 步骤: 1.@ControllerAdvice(pasePackage="") 注释异常 ...
- 【linux】工作中linux系统常用命令操作整理
1.Linux如何查看端口 使用lsof(list open files)命令,lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000. 或者使用n ...
- atlassian-jira部署文档
部署mysql数据库,我这里使用mariadb数据库,并且创建jira的数据库和用户,下面是创建jira数据库和用户的操作,安装数据库mysq过程略.(MYSQL数据库也是可以的,不过mysql的驱动 ...