`
JS小吴
  • 浏览: 4844 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

数据结构二有序数组&二分查找

 
阅读更多
有序插入:如果已有数组本来就是乱的,可以先排序下,排序还没复习到,呵呵,就先用已经是有序的数组(升序)做实验。思路还是线性查找数组,从第一个开始查找,查到到了比该数据大的即可,记录下这个位置标示,然后将所有数据往后移动一位,腾出这个空,将数据插入即可。
二分查找:OO说了个很形象的比喻,就像电视猜商品价格一样,上限10000,然后你猜5000,主持人会告诉你是大还是小,大了就接着猜2500,小的话就接着7500,如此下去既可以了。代码如下,只是考虑思想,代码实现上时间空间复杂度有不足。
public void insert(long value) {// 插入数据
		int i;
		for (i = 0;  i < elems; i++) {
			if(arr[i] > value) {
				break;
			}
		}
		for(int j = elems; j > i;j--){
			arr[j] = arr[j - 1];
		}
		arr[i] = value;
		elems++;
	}
	public int binaryFind(long searchKey) {// 二分法查找
		int ins = 0;
		int low = 0;
		int pow = elems;
		while(true) {
			ins = (low + pow) / 2;
			if(arr[ins] == searchKey) {
				return ins;
			} else if(low > pow){
				return -1;
			} else {
				if (arr[ins] > searchKey) {
					pow = ins - 1;
				} else {
					low = ins + 1;
				}	
			}
		}
          }
分享到:
评论

相关推荐

    数据结构 二分查找 上机实验

    编写Search_Bin函数,实现在一个递增有序数组ST中采用折半查找法确定元素位置的算法. Input 第一行:元素个数n 第二行:依次输入n个元素的值(有序) 第三行:输入要查找的关键字key的值 Output 输出分两种情形:...

    《算法导论》第二版中文全集,含:全世界唯一带“完整”目录的版本,代码。第2部分(共4部分)。学好核心技术,既为自己,也为天空不落下别国的炸弹

    数据结构教材 我强烈推荐Sartaj Sahni著《数据结构算法与应用 C++语言描述》 这是一部难得的好书 作者循序渐进 娓娓道来 每一种数据结构和算法都给出了详细的实现代码和运行结果 而且代码质量极高 甚至可以直接照搬...

    详解Java数据结构和算法(有序数组和二分查找)

    本篇文章主要介绍了详解Java数据结构和算法(有序数组和二分查找),具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    合肥工业大学数据结构试验七查找

    &lt;1&gt; 对下列数据表,分别采用二分查找算法实现查找,给出查找过程依次所比较的元素(的下标),并以二分查找的判定树来解释。 &lt;2&gt; 设计出在二叉排序树中插入结点的算法,在此基础上实现构建二叉排序树的算法。 &lt;3&gt; ...

    合工大数据结构查找实验

    (1) 对下列数据表,分别采用二分查找算法实现查找,给出查找过程依次所比较的元素,并以二分查找的判定树来解释。 (2) 设计出在二叉排序树中插入结点的算法,在此基础上实现构建二叉排序树的算法。 (3) 设计算法在...

    数据结构实验二分查找

    简单的初级菜鸟上传的数据结构试验报告,我是大二学的数据结构,主要是帮助那些一点都不会的更菜的菜鸟~!

    二分查找的优缺点以及举例

    二分查找(Binary Search),也称折半查找,是一种效率较高的查找方法。它要求线性表必须采用顺序存储结构,且表中元素按关键字有序排列。...在实际应用中,根据具体需求和数据结构的特点,可能需要对二分查找

    计算机二级公共基础知识

    查找是指在一个给定的数据结构中查找某个指定的元素。从线性表的第一个元素开始,依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;若线性表中所有的元素都与被查找元素进行了比较但都不相等,则...

    合肥工业大学数据结构查找实验

    (1) 对下列数据表,分别采用二分查找算法实现查找,给出查找过程依次所比较的元素(的下标),并以二分查找的判定树来解释。 第一组测试数据: 数据表为 (1,2,3,4,6,7,8,9,10,11,12,13,17,18,19,20,24,25,26,30,35,...

    数据结构和算法必知必会的50个代码实现

    * 实现一个有序数组的二分查找算法* 实现模糊二分查找算法(比如大于等于给定值的第一个元素) ## 散列表* 实现一个基于链表法解决冲突问题的散列表* 实现一个LRU缓存淘汰算法 ## 字符串 ## 二叉树 ## 堆 ## 图 ##...

    《Python数据结构与算法》教程及代码

    举个例子:二分查找就是一个非常经典的算法,而二分查找经常需要作用在一个有序数组上。这里二分就是一种折半的算法思想, 而数组是我们最常用的一种数据结构,支持根据下标快速访问。很多算法需要特定的数据结构来...

    PHP实现找出有序数组中绝对值最小的数算法分析

    二分查找,因为数组有序,可以利用二分查找,时间复杂度O(logn)。 分析步骤: 1. 如果第一个数为正数,说明整个数组没有负数,直接返回第一个数 2. 如果最后一个数为负数,说明整个数组没有正数,直接返回最后一个...

    java数据结构与算法第二版

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...

    数据结构查找实验.zip

    数据结构实验,(1) 对下列数据表,分别采用二分查找算法实现查找,给出查找过程依次所比较的元素(的下标),并以二分查找的判定树来解释 (2) 设计出在二叉排序树中插入结点的算法,在此基础上实现构建二叉排序树的...

    Java数据结构和算法中文第二版

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为...

    数据结构实验报告-查找算法.doc

    《数据结构》 第八次实验报告 "学生姓名 " " "学生班级 " " "学生学号 " " "指导老师 " " 实验内容 1) 有序表的二分查找 建立有序表,然后进行二分查找 2) 二叉排序树的查找 建立二叉排序树,然后查找 需求分析 二分...

    数据结构查找算法实验报告.doc

    二分查找则是先对数据进行排序,然后利用 三个标志,分别指向最大,中间和最小数据,接下来根据待查找数据和中间数据的比较 不断移动标志,直至找到。二叉排序树则是先构造,构造部分花费最多的精力,比根节 点数据...

    高校数据结构期末考题库

    4、二维数组是其数组元素为线性表的线性表。( ) 5、每种数据结构都应具备三种基本运算:插入、删除和搜索。( ) 6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个 方面。( ) 7、...

    Java数据结构和算法(第二版)

    递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级排序 希尔排序 划分 快速排序 基数排序 小结 问题 实验 编程作业 第8章 二叉树 为什么使用二叉树? ...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    7.2.2 二维数组元素的引用 86 7.2.3 二维数组的初始化 87 7.2.4 二维数组程序举例 89 7.3 字符数组 89 7.3.1 字符数组的定义 89 7.3.2 字符数组的初始化 89 7.3.3 字符数组的引用 90 7.3.4 字符串和字符串结束标志 ...

Global site tag (gtag.js) - Google Analytics