递归来实现一个二分查找算法函数bi_search()
来源:互联网 发布:apache camel中文教程 编辑:程序博客网 时间:2024/06/09 14:53
题目内容:
定义一个 prime() 函数求整数 n 以内(不包括n)的所有素数(1不是素数),并返回一个按照升序排列的素数列表。使用递归来实现一个二分查找算法函数bi_search(),该函数实现检索任意一个整数在 prime() 函数生成的素数列表中位置(索引)的功能,并返回该位置的索引值,若该数不存在则返回 -1。
输入格式:
第一行为正整数 n
接下来若干行为待查找的数字,每行输入一个数字
输出格式:
每行输出相应的待查找数字的索引值
输入样例:
10
2
4
6
7
输出样例:
0
-1
-1
3
#bi_search.py# coding: utf-8import mathdef isprime(n): #判断素数,若是,返回True;否则,返回False if n ==2: return True elif n >2 : for i in range(2,int(math.sqrt(n))+1): if n%i == 0: return False return True else: return False#print(isprime(117))def primelist(): num = eval(input()) primes= [] for n in range(2,num): if isprime(n): primes.append(n) return primesdef bi_search(primes,low,high,n): #low = 0 #high = len(primes)-1 mid = int((low + high)/2) if low <= high: if n == primes[mid]: return mid elif n > primes[mid]: return bi_search(primes,mid+1,high,n) else: return bi_search(primes,low,mid-1,n) else: return -1primes = primelist()search = []while True: n = eval(input()) if n == -1: break else: search.append(n)for n in search: print( bi_search(primes,0,len(primes)-1,n))
阅读全文
0 0
- 递归来实现一个二分查找算法函数bi_search()
- 二分查找算法递归实现
- 递归算法实现二分查找
- 【算法】二分查找递归实现
- 二分查找算法-递归-非递归实现
- java递归实现二分查找算法
- java递归实现二分查找算法
- java实现递归版二分查找算法
- Java实现二分查找的递归算法
- 递归二分查找算法
- 一个递归和非递归实现二分查找的代码
- 二分查找算法递归和非递归实现(C++)
- 漫谈递归:二分查找算法的递归实现
- 分别使用递归和非递归实现二分查找算法
- 【算法拾遗】二分查找递归非递归实现
- 二分查找算法的递归与非递归实现
- 二分查找算法递归和非递归实现
- 二分查找算法(递归与非递归实现)
- scrapy的保存数据
- 快速计算平台matlab到C++ 代码转换
- byte[]与各种数据类型互相转换示例
- MYSQL连接与断开服务器
- 百度统计数据导出服务踩的坑
- 递归来实现一个二分查找算法函数bi_search()
- JQuery DataTables 重载当前列表
- 2017哈尔滨ccpc部分题解
- mysq数据库web远程管理
- CentOS7操作系统下实现mysql数据库的主主复制
- MongoDB之开题
- Arduino的详细介绍(基于Mega2560)
- spring 事物的一些理解 推荐一个我认为Spring事物写得很好的文章。 文章链接:http://www.codeceo.com/article/spring-transaction
- flume01