算法分析
在有序数组中使用二分查找,如果没有找到则进行插入。
public class BinarySearchInsert{ public static void main(String args[]){ int search = 0; int[] src = {1,2,3,4,5,6,7,8,9,10}; Map<String,String> result = binarySearch(src,search); if("Y".equals(result.getString("isFind"))){ System.out.println("value was found,index is :" + result.getString("index")); }else{ insertArray(src,search,Integer.parseInt(result.getString("index"))); } } public static void binarySearch(int[] src,int search){ Map<String,String> result = new HashMap<String,String>(); int left = 0; int right = src.length; while(left <= right){ int middle = (left + right)/2 if(src[middle] == search){ result.put("isFind","Y"); result.put("index",String.valueOf(middle)); return result; }else if(src[middle] > search){ left = middle + 1; }else{ right = middle - 1; } } result.put("isFind","N"); result.put("index",String.valueOf(left)) return -1; } public static void insertArray(int[] src,int value,int index){ int[] dec = Array.copyOf(src,src.length + 1); int decL = dec.length; while(index <= decL){ if(index == decL){ dec[decL] = value; break; } dec[decL] = dec[decL-1]; decL--; } } }
相关推荐
二分查找的C实现
当你需要构建一个大的有序队列,用插入发太慢了,可以先用二分查找法,找到在队列要插入的位置,把数后移一下,然后放进去。比较效率,下面是java使用示例,需要的朋友可以参考下
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表...
1.二分查找又称为折半查找,它要求要查找的顺序表必须是有序表,即表中结点按关键字有序.并且要用顺序存储结构。 基本思想是:首先将给定值key与表中中间位置记录的关键字相比较,若二者相等,则查找成功,否则...
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素...
二分查找(C++):查找过程中能够记录比较元素的下标并输出 二叉排序树(C++):建立;显示结点、插入元素、删除元素。
(1) 对下列数据表,分别采用二分查找算法实现查找,给出查找过程依次所比较的元素,并以二分查找的判定树来解释。 (2) 设计出在二叉排序树中插入结点的算法,在此基础上实现构建二叉排序树的算法。 (3) 设计算法在...
顺序查找表 二分查找表 折半查找表 二叉排序树 C#源代码 注意二叉排序树只实现了查找和插入算法,使用Visual Studio 2008开发
跳表是一种既支持快速查找,又支持动态插入删除的数据结构,它通过在链表的基础上增加链来提高查找的性能。本程序用C++实现了跳表的查找,插入跟删除操作。
程序模拟实验所用到的所有源码,包括冒泡排序,插入排序,代码运行时长统计等。
二叉排序树:更新二叉排序树、查找结点、插入结点、删除结点、中序输出排序树 、返回 查找算法:顺序查找、二分查找、二插排序树、返回
C语言中常见的排序算法包括归并排序、选择排序、直接插入排序、希尔排序、冒泡排序、快速排序、堆排序以及顺序查找和二分查找。这些排序算法各有特点,在不同情况下有着不同的应用场景和性能表现。 归并排序(Merge...
<1> 对下列数据表,分别采用二分查找算法实现查找,给出查找过程依次所比较的元素(的下标),并以二分查找的判定树来解释。 <2> 设计出在二叉排序树中插入结点的算法,在此基础上实现构建二叉排序树的算法。 <3> ...
二分查找插入,找合适位置的时候使用二分查找算法 希尔排序 思想 用增量来将数组进行分隔,直到增量为1。底层干的还是插入排序干的活 做法 最外层for外循环控制增量的数量,...
二分法查找法以及和二叉树查找的联系,部分二分搜索和二叉查找树的相关题目: 插入位置;区间查找;旋转位置查找;二叉查找树的编码和解码;逆序数的解题方法和代码实现
本文实例讲述了C++二分查找(折半查找)算法。分享给大家供大家参考,具体如下: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找...
基于平行数组与二分查找的有序符号表是《算法》中的经典查找算法,本程序使用 Python 语言,实现有序符号表。 ST.py 包含两个类,ST 和 OrderedST。 ST是无序的符号表,基于链表实现。按照顺序将键值对插入链表。 ...
搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。示例 1:输入: [1,3,
查找表源码,其中包含两个独立的程序: (1)哈希(Hash)表操作测试程序 (2)二分查找法测试程序 用C语言编译器编译后可以直接运行,功能包括查找、插入、删除等操作。