zoukankan      html  css  js  c++  java
  • python php 二分查找

    ——————————
    二分查找 python实现
    
    #!/usr/bin/python
    # 输入的列表必须是已经排好序的列表
    def binary_search(li, val):
    	left = 0 #定义开始范围 
    	right = len(li)-1  #定义查找结束范围 
    	while left <= right: #如果左边的值小于右边的值 证明候选区还有值 继续循环查找
    		mid = (left+right) // 2 #获取候选区中间的值
    		if li[mid] == val:  #如果中间值等于要查找的值 则结束算法
    			print mid
    			return 
    		elif li[mid] > val: # 如果中间的值大于要查找的值 则证明右边的范围值需要按照中间值进行折半 mid-1 是不需要和原来的中间值比较
    			right = mid - 1 
    		else:#li[mid] < val
    			left = mid+1 # 如果中间的值小于要查找的值 则证明左边的范围值需要按照中间值进行折半 mid+1 是不需要和原来的中间值比较
    	else:
    		print "none" # 否则就是没找到值
    
    #时间复杂度 O(logn) 相比线性查找效率更高
    
    _______________________
    
    // 二分查找 php实现
    
    function binary_search($li,$value)
    {
    	$li_lenght = count($li);
    
    	$left = 0;
    	$right = $li_lenght;
    
    	while ($left < $right) {
    		$mid = round(($left+$right)/2);
    	
    		if ($li[$mid] == $value) {
    			return "ok";
    		}
    		if ($value > $li[$mid]) {
    			$left = $mid + 1;
    		}
    		if ($value < $li[$mid]) {
    			$right = $mid - 1;
    		}
    	}
    	return "none";
    }
    
    
  • 相关阅读:
    关于aspx消除源代码的第一行空行(一步搞定!!!)
    考虑
    一段时间没来园子了
    随便写写
    自考群网站功能说明
    打开一个别人的代码遇到的问题
    i7 4790 z97ar ssd 固态硬盘 装机的一些经历
    我编程遇到的问题,解决方法与大家分享
    学习,学习,还是学习
    准备考试
  • 原文地址:https://www.cnblogs.com/ikai/p/11590464.html
Copyright © 2011-2022 走看看