查找有序数组(二分法)(时间复杂度O(logn))——C++
查找有序数组指定元素,返回目标元素下标,如果不存在,则插入适当位置使数组仍然保持有序,时间复杂度为O(log(n)),该算法是基本查找算法,可以用二分法。下面是代码实现。
class Solution {
public:int searchInsert(vector<int>& nums, int target) {int size = nums.size(), left = 0, right = size - 1, mid = 0;while (left <= right){mid = (left + right) / 2;if (target == nums[mid])return mid;else if (target < nums[mid])right = mid - 1;elseleft = mid + 1;}return left;}
};
输出结果:
查找有序数组(二分法)(时间复杂度O(logn))——C++相关推荐
- c语言中的数组二分法排序程序,#C语言#二分法查找有序数组
C语言的二分法,想必很多朋友都在初学时是一个难啃的骨头,因为这是必须掌握的最基础的一种算法.在这里我分享一下这个简单的#二分法#查找有序数组 #include int binary_search(in ...
- 二分法查找是基于有序_利用二分法查找有序数组中是否含有给定Value
//利用二分法查找有序数组中是否含有给定Value class AlgorithmByZXQ { /// /// 二分法查找数组中某一数值 /// /// /// /// /// /// public ...
- 如何用二分查找法查找有序数组
一.程序简述 需要查找一个数字在数组中的位置,可以使用二分查找法在一个有序数组中查找具体的某个数字n 二.程序要点 1.普通的遍历查找方法的复杂度为n,那么二分查找算法的复杂度就是log2n 2.二分 ...
- 查找有序数组中某个数首次出现的位置
为什么80%的码农都做不了架构师?>>> 给定一个排序的数组,找出数组中某个元素第一次出现的位置.如果没有找到返回-1. 某次面试时遇到这个题.当时用循环形式的二分查找做的,解 ...
- 二分查找 —— 有序数组不小于(不大于)某数的第一个(最后一个)元素
1. 不小于某数的第一个元素 def bisearch(l, e, lo, hi):while lo < hi:mi = (lo + hi)//2if e > l[mi]: lo = mi ...
- python二分法查找时间点_python有序查找算法:二分法
二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 但是需要注意:待查找的序列区间单调有序 例如需要查找有序数组arr里面的某个关键字key的位置,那么首先确 ...
- 无序链表(顺序查找)和有序数组(二分查找)-基础实现-符号表(二)-数据结构和算法(Java)
文章目录 1 无序链表的顺序查找 1.1 无序链表实现 1.2 分析 2 有序数组中的二分查找 2.1 实现 2.2 分析 3 对二分查找的分析 4 总结 5 后记 1 无序链表的顺序查找 1.1 无 ...
- 【LeetCode】陌陌面试-有序数组于其一个元素翻转后,判断一个数是否存在数组中,时间复杂度O(logn)
1.有序数组,判断一个数是否存在于数组中,时间复杂度O(logn) 解题思路: 二分法,在有序数组中,提高时间复杂度的一个方法. 代码: def demo(nums, target):left,rig ...
- 折半查找一个有序数组中的一个元素,即二分法
折半查找法(二分法) 在写程序中,我们需要注意的是函数的要求,需要你输入的是下标,那么下标是由low和high共同求得.我会在下面给大家介绍的. 运行结果 代码如下 #include<stdio ...
最新文章
- 16 分频 32 分频是啥意思_Verilog 数字分频器的设计及验证
- 机房系统(十)——【结账】
- c语言输出最大素数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
- C++中如何读取一个数的位数_求1000以内的水仙花数
- php 网页转pdf
- android内部类broadcastreceiver,android 公开静态内部类BroadcastReceiver
- Leetcode每日一题:26.remove-duplicates-from-sorted-array(删除排序数组中的重复项)
- DevOps ACA 软件代码与质量管理(六)
- word未保存文件关闭之后,如何恢复
- java 拼音_GitHub - promeG/TinyPinyin: 适用于Java和Android的快速、低内存占用的汉字转拼音库。...
- 高性能网站架构之缓存篇—Redis集群搭建
- tex插入excel图表_Excel:以编程方式插入图表。
- 百度、腾讯、阿里等互联网公司年终奖都发多少?找工作指南
- Hive环境搭建(保姆级教程)
- 算法训练 - 阿尔法乘积 计算一个整数的阿尔法乘积。对于一个整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿 尔法乘积就等于它的各位非0
- R-ggplot2 标准中国地图制作
- Docker搭建nextcloud使用云盘
- Java细枝末节:运算符优先级表
- 取款机中出现假币的分析
- 利用Qt制作连续性图片