当前位置:网站首页>Binary search
Binary search
2022-07-05 20:48:00 【全栈程序员站长】
大家好,又见面了,我是全栈君,今天给大家准备了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 : [email protected]
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;
}update:2015.1.8
加入python版本号的实现
'''
Code writer : EOF
Code date : 2015.01.08
Code file : bs.py
e-mail : [email protected]
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()版权声明:本文博客原创文章,博客,未经同意,不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117659.html原文链接:https://javaforall.cn
边栏推荐
- 3.3 project evaluation
- NPDP如何续证?操作指南来了!
- Abnova DNA marker high quality control test program
- 中国的软件公司为什么做不出产品?00后抛弃互联网;B站开源的高性能API网关组件|码农周刊VIP会员专属邮件周报 Vol.097
- Frequent MySQL operations cause table locking problems
- 线程池的使用
- IC popular science article: those things about Eco
- Use of form text box (II) input filtering (synthetic event)
- Cutting edge technology for cultivating robot education creativity
- XML建模
猜你喜欢

鸿蒙os第四次学习

台风来袭!建筑工地该如何防范台风!

AI automatically generates annotation documents from code

Abbkine丨TraKine F-actin染色试剂盒(绿色荧光)方案

Abnova blood total nucleic acid purification kit pre installed relevant instructions

10000+ 代码库、3000+ 研发人员大型保险集团的研发效能提升实践

2.8 basic knowledge of project management process

教你自己训练的pytorch模型转caffe(二)

Duchefa p1001 plant agar Chinese and English instructions

【刷题记录】1. 两数之和
随机推荐
Interpreting the daily application functions of cooperative robots
The development of research tourism practical education helps the development of cultural tourism industry
Duchefa s0188 Chinese and English instructions of spectinomycin hydrochloride pentahydrate
10000+ 代码库、3000+ 研发人员大型保险集团的研发效能提升实践
go 文件路径操作
Applet project structure
Norgen AAV extractant box instructions (including features)
Applet global configuration
常用的视图容器类组件
Promouvoir le développement de l'industrie culturelle et touristique par la recherche, l'apprentissage et l'enseignement pratique du tourisme
教你自己训练的pytorch模型转caffe(三)
14、Transformer--VIT TNT BETR
Use of form text box (II) input filtering (synthetic event)
台风来袭!建筑工地该如何防范台风!
Leetcode (695) - the largest area of an island
Research and development efficiency improvement practice of large insurance groups with 10000 + code base and 3000 + R & D personnel
Make Jar, Not War
XML建模
Norgen AAV提取剂盒说明书(含特色)
Prosci LAG-3 recombinant protein specification