![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂记
文章平均质量分 95
time~travel
这个作者很懒,什么都没留下…
展开
-
一文带你搞定二分查找及其多个变种!
1 完全有序二分查找二分查找也称折半查找(Binary Search),是一种在有序数组中查找某一特定元素的搜索算法。我们可以从定义可知,运用二分搜索的前提是数组必须是有序的,这里需要注意的是,我们的输入不一定是数组,也可以是数组中某一区间的起始位置和终止位置。下面我们通过一个例子来帮助我们理解。我们需要在 nums 数组中,查询元素 8 的索引:int[ ] nums = {1,3,4,5,6,8,12,14,16}; target = 8 (1)我们需要定义两个指针分别指向数组的头部及.原创 2021-01-17 15:49:32 · 458 阅读 · 0 评论 -
C++每日一题:在排序数组中查找元素的第一个和最后一个位置
题目: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1],OJ链接二分查找的三种写法二分查找通常有以下几种写法,区别主要在于 while 里面:形式结论与建议while (left <= right)简单问题用,在循环体里能找到答案以后退出。while (left < right)复杂问题用,把答案留到退出循环以后,再判断。是解决二分原创 2021-01-17 15:22:59 · 1237 阅读 · 0 评论 -
动态内存管理面试夺命六连问?
动态内存管理面试夺命五连问1 程序运行起来后,内存被分为几个区域?操作系统为什么要对内存分这些区域?2 什么是动态内存?3 为什么需要进行动态内存申请呢?4 动态内存申请时,需要注意什么问题?5 C语言中是如何进行内存申请的?5.1 malloc/calloc/realloc有什么区别?5.1.1 相同点5.1.2不同点void* malloc(size_t size) ;void* calloc(size_t num, size_t size);void* realloc(void* ptr, size原创 2020-10-14 16:44:58 · 150 阅读 · 0 评论 -
内存和磁盘的关系解读(读书笔记)
内存和磁盘的关系解读不读入内存就无法运行 在考虑内存和磁盘之间的关系之前,我们首先来看一个前提性的东西。 程序保存在存储设备中,通过有序的被读出来实现运行,这一点搭建都很清楚。在一机制被称为存储程序方式(程序内置方式),现在看来是理所当然的,但在当时他的提出可以说是一个里程碑式。因为在此之前的程序都是通过改变计算机的布线等改变程序的。 计算机中主要的存储部件是内存和磁盘。磁盘中存储程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法运行的,这是因为负责解析和运行内容的CPU需要通过内原创 2020-09-04 22:48:56 · 955 阅读 · 0 评论 -
一文读懂CPU缓存原理!
CPU总体概述 CPU 缓存「Cache」指的访问速度比一般内存快得多的高速存储器,主要是为了解决 CPU 运算速率与内存读写速率不匹配的问题。因为 CPU 的运算速率比内存读写速率快得多,当 CPU 需要向内存请求数据或者写入数据时,就需要一直等待内存缓慢的读写。在这个过程中,CPU 的高速运算能力就无法得到充分发挥。 所以缓存的作用就像是 CPU 和内存之间进行数据缓冲的桥梁。 缓存中的数据是内存中的一部分,这一部分数据被认为是 CPU 在短时间内会即将访问到的数据。当 CPU 在调用数据时转载 2020-08-14 14:25:23 · 2155 阅读 · 0 评论