Binary search

Binary search

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Binary Search


Jon Bentley以前说过类似的话:“90%的程序猿无法正确实现二分查找算法



就冲着这句话去写binary search


binary_search 的算法实现部分

/*********************************************************
code writer	:	EOF
code file	:	binary_search.c
code date	:	2014.9.18
e-mail		:	jasonleaster@gmail.com

description:
	You may have to KNOW that the @array was
sequenced from min to max  when you use "binary search".

	If this function find the element , return the
location in the @array, otherwise return -1.

********************************************************/
#include <stdio.h>

int binary_search(int* array,int size,int element)
{
	if(!array)
	{
		printf("You passed NULL into function: %s()\n",__FUNCTION__);
		return -1;
	}

	int low = 0;
	int mid = 0;
	int high= 0;

	for(low = 0,high = size-1;low <= high;)
	{
		mid = (low+high)/2;
		
		if(array[mid] < element)
		{
			low = mid+1;
		}
		else if(array[mid] > element)
		{
			high = mid-1;
		}
		else
		{
			/*
			** 	found that.
			*/
			return mid; 
		}
	}

	return -1;
}


測试用程序

#include <stdio.h>
#include "binary_search.h"

int main()
{
	int number[10] = {0,2,6,8,10,15,18,40,99};

	int what_i_want = 18;
	int ret = 0;

	ret = binary_search(number,sizeof(number)/sizeof(number[0]),what_i_want);

	if(ret < 0)
	{
		printf("Not found!\n");
		return 0;
	}

	printf("location:%d number[%d]:%d\n",ret,ret,number[ret]);

	return 0;
}


Binary search



update:2015.1.8

加入python版本号的实现

'''
Code writer : EOF
Code date   : 2015.01.08
Code file   : bs.py
e-mail      : jasonleaster@gmail.com

Code description:
       Here is a implementation for 
how to do binary search in Python.

'''
def binary_search(array, element):

    high = len(array)
    mid = -1
    for low in range(len(array)) :
        mid = (low + high)/2

        if array[mid] < element :
             low  = mid + 1
        elif array[mid] > element :
             high = mid - 1
        else :
             return mid

    return -1
     
def main():
    number = [1,2,3,4,5]

    print number
    print number[binary_search(number,3)]

main()

Binary search





Binary search



版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117659.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)

    基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)摘要:当前深度学习在目标检测领域的影响日益显著,本文主要基于深度学习的目标检测算法实现车辆检测,为大家介绍如何利用MATLAB设计一个车辆检测系统的软件,通过自行搭建YOLO网络并利用自定义的数据集进行训练、验证模型,最终实现系统可选取图片或视频进行检测、标注,以及结果的实时显示和保存。其中,GUI界面利用最新的MATLABAPP设计工具开发设计完成,算法部分选择时下实用的YOLOv2/v3网络,通过BDD100K数据集进行训练、测试检测器效果。本文提供项目所有涉及到的程序代码、数据集等文件,完整资源。

    2022年10月15日
    3
  • 多吃碱性食物 远离癌症

    多吃碱性食物 远离癌症

    2021年8月4日
    54
  • vs2010专业板产品密钥

    vs2010专业板产品密钥网上查找很多,大家都在使用这个,试过之后,可以。YCFHQ-9DWCY-DKV88-T2TMH-G7BHP

    2022年5月8日
    43
  • 决策树原理及其应用[通俗易懂]

    决策树原理及其应用[通俗易懂]决策树原理及其应用决策树的原理我们先构造一颗简单的决策树来玩一玩。举一个不恰当的例子:小明过年回家,老妈催着他结婚,帮着张罗相亲对象。有三个女孩的资料(简称A、B、C)。关于A:小明问:”身材好吗?”,妈妈说:“好!”,小明说:“见一面”关于B:小明问:”身材好吗?”,妈妈说:“不好!”,小明又问:“漂亮吗?”,妈妈说:“漂亮!”,小明说:“见一面”关于C:

    2025年10月2日
    4
  • sae wpa3加密方式_WPA3:四大安全新特性技术分析

    sae wpa3加密方式_WPA3:四大安全新特性技术分析周一晚些时候,包括苹果、思科、英特尔、高通和微软等科技巨头在内的Wi-Fi联盟正式推出了新的Wi-Fi安全标准WPA3。这个标准将解决所有已知的、会影响重要标准的安全问题,同时还针对KRACK和DEAUTH等无线攻击给出缓解措施。WPA3为支持Wi-Fi的设备带来重要改进,旨在增强配置、加强身份验证和加密等问题。重要改进主要包括:防范暴力攻击、WAP3正向保密、加强公共和…

    2022年5月24日
    50
  • GNU Autoconf Introduction

    GNU Autoconf Introduction下载地址:https://www.gnu.org/software/autoconf/manual/autoconf.pdfAutoconfisatoolforproducingshellscriptsthatautomaticallyconfiguresoftwaresourcecodepackagestoadapttomanykindsofPo

    2022年5月4日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号