最新文章列表

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 whil ...
huaerfan 评论(2) 有2902人浏览 2013-09-08 01:03

数组

数组 概念:数组就是数据的集合,实质就是内存空间的连续表示,将连续的内存空间划分为若干个小空间 定义:1.数据类型 []数组变量=new 数据类型[整 ...
scarlettli 评论(0) 有808人浏览 2013-07-20 16:34

庞果网的二分查找挑战

上周末在ITEYE上看到一个标题‘在充足时间下,只有百分之二十程序员能成功完成的二分查找’,当时心想,对于算法虽然基础不是很精通,但是基础的还没问题,抱着好奇心点了进去,原来是一个编程挑战,题目当然是实现二分查找,还有一个附属条件是当有多个值相同时,返回最小下标,看看时间,一个小时呢,心想应该很快能够实现的,当然首先想到是写一个递归算法,写递归算法首先的是要确定出口,当时很自然的觉得应该是开始下标应 ...
yuchen_johnson 评论(0) 有893人浏览 2013-06-01 20:47

Arrays.binarySearch()

      最近做1个OJ题目,其中有一步这样的操作:给定一个排序好的数组,随意给定一个数据,寻找数组中第一个大于或等于该值的数据在数组中的索引。如{1,4,5,10}, 给定4,应该返回的索引是1;给定6应该返回的索引是3        刚开始我用的是直接从前到后扫描一遍这种最原始的方法,跑junit用例的时候,发现此处存在性能瓶颈。最后使用了jdk中自带的二分搜索,满足了性能要求。呵呵, ...
aty 评论(0) 有1628人浏览 2013-05-26 18:17

二分法查找第一个满足条件的项

public class BinSearch1st { Random random = new Random(); /** * 二分查找,找到s的下标,如果没有返回-1 * @param arr * @param s * @return */ public int bsearch(int[] ar ...
teasp 评论(0) 有1082人浏览 2013-05-16 12:44

可视化查找之二分查找

如果查找过程和程序执行能结合起来,那么这个过程会更加直观。 本文简单地实现了二分查找的可视化。界面很简单就包括两个部分:界面左侧是可视化查找部分,右侧是二分查找的代码。如下图所示: 程序的关键点主要有两点: 1. 如何在页面上表示出查找程序的运行过程。 2. 如何将排序程序的运行过程和可视化查找结合起来,保持状态一致。 我的解决方法如下: 我采用了JList去模拟程序的执行,JL ...
MouseLearnJava 评论(0) 有1896人浏览 2013-05-14 10:10

Python低内耗读取文件的二分查找单词

  问题描述:有一个有序的单词文件如下图   要求写一个查找功能(防止文件过大时占用内存,建议文件不要一次全部读入内存) 使用二分查找法,输出匹配的结果 例如   输入>>   dis           输出>>   disadvantage         n. 不利,不利条件,损害,损失                        discussio ...
薰衣草之子 评论(0) 有1819人浏览 2013-05-08 17:45

二分查找算法

经典算法介绍:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难 折半查找方法适用于不经常变动而查找频繁的有序列表。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表 ...
jin8000608172 评论(0) 有1056人浏览 2013-01-10 14:17

编程之美-3.11

1.给定一个有序(不降序)数组a,求任意一个i使得a[i]等于v,不存在返回-1 int bisearch(int[] a, int v){ int low = 0,high = a.length-1,t; while(low<=high){ t = low+(high-low)/2; if(a[t]==v) return t; e ...
Iam42 评论(0) 有1599人浏览 2012-08-31 00:07

二分查找(java)

/** * TODO */ package com.xeezee.array; /** * 二分查找法 * * @author luoqinglong * @date 2012-7-30 */ public class Half { /** * @param args */ public static void main(String[ ...
luoqinglong 评论(0) 有779人浏览 2012-07-31 21:22

不一样的二分查找-只比较一次的2分查找实现

正常进行2次比较的二分查找实现,取列表中点值,(1)先比较x是否小于v[mid],若小于则说明在mid的左侧,(2)继续比较x是否大于v[mid],若大于则说明在mid的右侧 (3)否则mid即为x的位置 int binsearch(int x, int v[], int n) { int low, high, mid; low = 0; high = n - 1; while( ...
chiyx 评论(0) 有1955人浏览 2012-07-11 00:49

二分查找的递归和非递归

二分查找,这个适用于已经排序好了的数组,没有排序那就先排序,不过要根据实际的情况,要是排序代价很小,这样很好了 /** *2.15,在有序数组中查找,利用二分查找的方法 * */ #include <iostream> using namespace std; /** *二分查找(也可以通过递归实现) * */ int sort(int *a ...
hao3100590 评论(0) 有1338人浏览 2012-06-03 16:42

机器指令clz的C实现

clz:查找一个数据x前置0的个数。   /** * 二分查找1的位置 */ int clzInC(unsigned int x) { if (!x) return 32; int e = 31; //1111 1111 1111 1111 0000 0000 0000 0000 if (x&0xFFFF0000) { e -=16; x > ...
qianjigui 评论(0) 有1739人浏览 2012-05-31 11:44

你真的会二分查找吗?

  看到这个标题无论你是处于怎样的心理进来看了,我觉得都是值得的。因为这个问题太简单,任何一个开始接触“真正”算法基本都是从二分查找开始的。至于二分查找都不知道是什么的可以先去找别的资料看下,再来看这篇文章。既然很简单,那么我们开始一起写一个吧,要求是对num[]={1,2,2,4,4,8,10}不减序列在区间[0,7)进行查找,当然我们得首先保证要查找的数e满足:num[0] <= e & ...
mixer_b 评论(0) 有1021人浏览 2012-04-16 21:14

经过大脑思考的:二分查找

首先声明:这是一个经过同学分析的、老师要求的、自己脑袋思考的、打过草稿的、用圆珠笔,右手亲手写的java有关的二分查找。   什么是二分查找:以一个数组(已经升序排列好了的)来分析,首先找到整个数组索引值的中间点的数组的key,如果等于你所要找的值X则这个索引值就是你要找的;如果>X,证明素要找的的前半部分,否则在后半部分,然后递归即可。(当然,这是我个人的理解)    我的代码实 ...
flycatdeng 评论(0) 有1209人浏览 2012-03-16 22:15

二分查找--精简代码-数据结构

  这个方法不知道什么时候在哪里来了!反正觉得写得好好的。收藏在包里好久了,现在从包里倒出来归还网络! //二分查找 
yangky281 评论(0) 有1139人浏览 2012-02-01 11:41

二分查找算法

摘自java.util.Arrays的代码: public static int binarySearch(int[] a, int key) { int low = 0; int high = a.length-1; while (low <= high) { int mid = (low + high) >> 1; int ...
sharajava 评论(0) 有756人浏览 2011-11-28 14:38

算法导论2.3-7 二分查找变种题目

package Chapter2; /* * 题目:算法导论2.3.7 * 请给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时, * 判断出S中是否存在有两个其和等于S的数 * *算法思想: *1、默认集合S是排序过的,若果没有排序,先排序。。。各种排序方法。 *2、本问题是二分查找的变形。。 * for i ← ...
kevin_in_java 评论(2) 有1999人浏览 2011-11-20 01:35

二分查找,迭代和递归,java实现

直接上代码,递归式   package cn.edu.cqupt.serach; public class HarfSearch { public static int search(int[] array,int start,int end,int target) { int middle = (start+end)/2; if(target==array[middl ...
kevin_in_java 评论(0) 有1526人浏览 2011-11-20 00:27

二分查找数组中的转折点

有一个有序的数组,将其中的元素都右移X位,这样将该数组变成了一个部分有序的数组。位置0到X以及X+1到n-1是有序的,但是array[X] > array[X+1]。array[X+1]为原先数组的最小值,我们称其为转折点。请找出该X+1。   解题思路:使用二分查找的方法来搜索X+1,时间复杂度为O(logn)。考虑只有一个元素和数组仍然保持有序的特殊情况。   public ...
eriol 评论(0) 有1682人浏览 2011-09-13 16:27

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics