`
huaerfan
  • 浏览: 12037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

python实现二分查找算法

阅读更多

  二分算法的定义不在多说了,百度一下就知道(支持国产大笑

import sys
source = [1,2,3,4,5,6,7,8,9,10] #must be in order
des = int(sys.argv[1])
low = 0
high = len(source) - 1
targetIndex = -1
print "des=",des
while low <= high:
    middle = (low + high)/2
    if des == source[middle]:
        targetIndex = middle
        break
    elif des < source[middle]:
        high = middle -1
        print "middle element[index=",middle,",value=",source[middle],"] is bigger than des, continue search from[",low,"to",high,"]"
    else:
        low = middle + 1
        print "middle element[index=",middle,",value=",source[middle],"] is smaller than des, continue search from[",low,"to",high,"]"
print "search complete, target element's index in source list is ",targetIndex

 运行结果如下:

 

  • 大小: 5.2 KB
1
3
分享到:
评论
2 楼 huaerfan 2013-09-08  
jianghu52 写道
楼主你好。我按照你的代码打出来了。有个地方想请教一下。为什么
des = int(sys.argv[1]) 这里一定要强转int。我实验过了。如果不强转确实不行。但是原因是为什么呢?不是很理解这个sys.argv这个函数,虽然知道怎么用。
另外,我还试验过source = ["1","2","3","4","5","6","7","8","9","10"]这种写法,这个时候不强转des就是可以的。同样,这个时候如果强转des为int的话,反而也不行。

我也是刚学的python,使用type()方法可以看出sys.argv获取到的参数是str类型的,而str类型与int类型相比较,引起的结果我还无法确定,还得多学习
1 楼 jianghu52 2013-09-08  
楼主你好。我按照你的代码打出来了。有个地方想请教一下。为什么
des = int(sys.argv[1]) 这里一定要强转int。我实验过了。如果不强转确实不行。但是原因是为什么呢?不是很理解这个sys.argv这个函数,虽然知道怎么用。
另外,我还试验过source = ["1","2","3","4","5","6","7","8","9","10"]这种写法,这个时候不强转des就是可以的。同样,这个时候如果强转des为int的话,反而也不行。

相关推荐

    分别使用Java和Python实现二分查找算法

    二分查找:分别使用Java和Python实现二分查找算法 二分查找:分别使用Java和Python实现二分查找算法 二分查找:分别使用Java和Python实现二分查找算法 二分查找:分别使用Java和Python实现二分查找算法 二分查找:...

    Python实现二分查找算法的详细指南

    Python实现二分查找算法的详细指南

    Python实现二分查找算法的详细讲解

    Python实现二分查找算法的详细讲解

    Python实现二分查找算法实例

    在Python中,我们可以很容易地实现二分查找算法。以下是一个简单的实现: ```python def search2(a, m): low = 0 high = len(a) - 1 # 当low小于等于high时,继续查找 while low mid = (low + high) // 2 # ...

    Python3实现二分查找算法(源代码)

    ### Python3实现二分查找算法 #### 一、二分查找算法概述 二分查找算法是一种高效的搜索技术,主要用于在已排序的数组中查找特定的元素。与线性搜索相比,二分查找的时间复杂度更低,仅为 O(log n),这使得它在...

    二分查找算法

    二分查找算法

    Python如何实现的二分查找算法

    以下是使用Python实现二分查找算法的详细步骤和注意事项: 1. 初始化搜索范围:设置搜索区间的下界`low`为0,上界`high`为列表长度减1。 2. 循环条件:只要`low`小于等于`high`,说明搜索区间仍然存在。 3. 计算...

    Python实现二分查找和哈希查找的示例代码及其时间复杂度和空间复杂度的分析

    在Python中,二分查找算法可以实现如下: ``` def binary_search(arr, x): low = 0 high = len(arr) - 1 mid = 0 while low mid = (high + low) // 2 if arr[mid] low = mid + 1 elif arr[mid] &gt; x: high...

    简介二分查找算法与相关的Python实现示例

    在本文中,我们将深入理解二分查找算法的基本思想,并通过Python代码示例来展示其具体实现。 二分查找的核心在于将查找问题分解为更小的子问题,直到找到目标值或确定目标值不存在。在每次迭代中,算法首先计算当前...

    Python搜索算法-二分查找算法详解

    Python搜索算法——二分查找算法详解

    python二分查找算法的递归实现方法

    以下是基于递归的二分查找算法的实现方法: 首先,我们需要理解递归的基本概念。递归是指一个函数在其定义中调用自身的过程。在二分查找中,我们将问题分解为两个更小的相同问题,即在数组的前半部分或后半部分继续...

    算法导论python实现

    3. **搜索算法**:如二分查找、广度优先搜索(BFS)、深度优先搜索(DFS)等,这些在解决图论问题和树结构问题时非常常见。 4. **图论算法**:包括Dijkstra最短路径算法、Floyd-Warshall所有对最短路径算法、Prim...

    Python3实现非递归二分查找

    总的来说,这个资源提供了Python3实现非递归二分查找的例子,以及相关的单元测试,帮助学习者理解并实践这一高效搜索算法。通过学习和应用这种算法,开发者可以更好地处理大数据集的搜索问题,提升代码的效率。同时...

    基于python的查找算法-二分查找Binary Search

    以下是对二分查找算法的详细说明: **1. 算法原理:** 二分查找首先确定数组中间元素,然后比较目标值与中间元素的大小关系。如果目标值等于中间元素,则查找成功;如果目标值小于中间元素,则在数组的左半部分继续...

    二分查找的python实现(及相关题目)(csdn)————程序.pdf

    了解这些细节对于实现一个高效的二分查找算法至关重要。在实际编程中,根据具体问题的特点和需求,可以选择合适的区间处理方式、计算mid的方法以及出界条件判断,以确保算法的正确性和效率。同时,熟悉这些相关题目...

    二分查找排序算法.zip

    在提供的"二分查找排序算法"文件中,应包含了详细的实例分析和注释清晰的Python代码,可以帮助读者更好地理解这个算法的工作原理和实现细节。通过学习和实践这个算法,你可以提升自己在算法设计和数据分析方面的能力...

    Python递归函数 二分查找算法实现解析

    在本篇文章中,我们将会探讨Python中的递归函数和二分查找算法,以及它们在实际问题中的应用。递归是一种强大的编程技术,它允许函数调用自身。二分查找算法是一种高效的搜索技术,适用于有序列表,通过反复将搜索...

Global site tag (gtag.js) - Google Analytics