1. 二分法 二分查找也属于顺序表查找范围,二分查找也叫做折半查找,二分查找的时间效率为(logN) 二分查找的基本思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功,如果给定值小于中间值,则查找数组的前半段,否则查找数组的后半段。 二分查找只适用于有序数组或者链 ...
分类:
编程语言 时间:
2020-06-29 23:01:59
阅读次数:
100
这个月每日一题有很多没做的,主要重心放在并查集和二分查找的题。 ...
分类:
其他好文 时间:
2020-06-29 16:57:53
阅读次数:
49
二分初学者一定要认真熟练将以下模版练习并将逻辑理解清楚 #include<bits/stdc++.h> using namespace std; int a[10]={1,3,5,7,9,9,9,11,13,15}; //二分查找 返回>=p的第一数下标,相当于jlower_bound() int ...
分类:
其他好文 时间:
2020-06-29 09:14:15
阅读次数:
44
一.查找 1.顺序查找:简单粗暴,将待查找数据和表中数据一一对比。 2.二分查找:也称折半查找,要求顺序表或者数组必须有序,查找效率相对较高。 3.分块查找:要求块与块之间有序,块内部不需要有序。查找效率高,但对表要求较高。 二.树的查找 1.二叉查找树:它或者是一棵空树,或者是具有下列性质的二叉树 ...
分类:
其他好文 时间:
2020-06-28 22:36:37
阅读次数:
64
一、思维导图: 二、需要留意的点 链式结构可以进行二分查找,但是不能在对数时间内完成,因为要对数字下标进行随机访问,实际都得遍历一遍,需要O(n) 二分查找应用场景的局限性: (1)基于顺序表的存储结构; (2)针对有序数据; (3)数据量小且比较操作不耗时时 (4)数据量不能太大(需要连续的内存空 ...
分类:
其他好文 时间:
2020-06-27 20:12:59
阅读次数:
66
一、第七章内容小结 1. 查找的基本概念 2. 线性表的查找 ① 顺序查找:从表的一端开始依次将记录的关键字和给定值进行比较,某记录的关键字和定值相等则查找成功;反之,扫描整个表未找到相等记录,则查找失败。顺序查找适用于线性表的顺序存储结构和链式存储结构。 2-1基于顺序表的顺序查找算法: 1 in ...
分类:
其他好文 时间:
2020-06-27 16:03:50
阅读次数:
78
顺序查找 监视哨的顺序查找 因为每次循环都需要对是否越界,即是否小于n做判断。事实上,还可以有更好一点的办法,设置一个哨兵,可以解决不需要每次让i与n作比较。 折半查找(二分查找) 二分查找(又称为折半查找)是在有序序列中查找比较多的查找算法,基本思路:设有一个从小到大的序列,取中间的元素m进行比较 ...
分类:
其他好文 时间:
2020-06-27 09:20:15
阅读次数:
58
用倍增法求后缀数组、名次数组 sa为后缀数组、rank为名次数组 //二分查找法,返回最接近的位置和实际位置 function binary_find(id,hasSortArr){ let l=0,r=hasSortArr.length; let index=-1; while(r-l>0){ c ...
分类:
编程语言 时间:
2020-06-26 16:39:28
阅读次数:
53
//二分查找法,返回最接近的位置和实际位置 function binary_find(id,hasSortArr){ let l=0,r=hasSortArr.length; let index=-1; while(r-l>0){ const m=(l+r)>>1; const mid=hasSor ...
分类:
编程语言 时间:
2020-06-25 17:48:53
阅读次数:
87
1.数组的拷贝 System类里包含一个static void arraycopy(object src,int scrops,object dest,int destpos,int length)方法,该方法可以将src数组里的元素值赋值给dest数组的元素。 其中srcops指定从src数组的第 ...
分类:
编程语言 时间:
2020-06-25 16:02:42
阅读次数:
53