二分搜索及测试函数
来源:互联网 发布:中国移动大数据 编辑:程序博客网 时间:2024/05/22 03:49
看了《编程珠玑》第一部分,完成了二分搜索已经这个函数的测试函数。
二分搜索思想十分简单,但是却很难一次性完成。
所以各种边缘测试是非常重要的。
下面是python完成的二分搜索代码。
def BinarySearch(list, point): list.sort(); lenth = len(list); l = 0; r = len(list) - 1; while(l <= r): m = int((l + r) / 2); temp = list[m]; if (point > temp): l = m + 1; elif (point == temp): return m; elif (point < temp): r = m - 1; return -1;
测试函数:
def BinarySearchTest(Max): count = 0; for i in range(0,Max): list = []; for j in range(0,i): list.append(random.randint(-Max / 4, Max / 4)) list.sort(); point = random.randint(-25, 25); TestIndex = BinarySearch(list, point); try: RightIndex = list.index(point); except: if (TestIndex == -1): count += 1; pass; else: print(list); print('TestIndex = ', TestIndex, 'RightIndex = ', RightIndex) print(point, ':no index error\n'); continue; if (TestIndex != -1): count += 1; pass; else: print(list); print('TestIndex = ', TestIndex, 'RightIndex = ', RightIndex) print(point, ':error\n'); if (count == Max): print('allright'); return count;
0 0
- 二分搜索及测试函数
- 对二分搜索算法的测试
- 二分搜索树,堆,及优先队列
- 搜索——二分搜索实现及细节
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- Linux命令搜索路径
- HTML+CSS
- 剑指offer——不用加减乘除做加法
- Dijkstra算法原理
- 第三章 数组和字符串(上)
- 二分搜索及测试函数
- LeetCode -- Minimum Number of Arrows to Burst Balloons
- 欢迎使用CSDN-markdown编辑器
- C语言面试题之字符串操作
- 面试题42:翻转单词顺序
- LeetCode 63. Unique Paths II
- Android DownloadManager详解
- 2017-02-19
- POJ 3425 Customer support