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";
    }
    
    
  • 相关阅读:
    vue2.0实践的一些细节
    数据库之一
    angularJS实用的开发技巧
    移动端开发的一些技巧总结(2)
    vue入门学习(基础篇)
    JS继承之原型继承
    css3动画
    使用 xlsx 前端解析 excel 文件
    webpack4 打包 library 遇到的坑
    roc-charts 开发笔记:JS广度优先查找无向无权图两点间最短路径
  • 原文地址:https://www.cnblogs.com/ikai/p/11590464.html
Copyright © 2011-2022 走看看