- 博客(10)
- 收藏
- 关注
转载 利用二分查找降低时间复杂度
今天刷到一道题,求两个正序数组的中位数(长度分别为m、n)要求时间复杂度降到O(log(m+n))首先我们很容易想到O(m+n)的解法——遍历,但是如何把时间复杂度降低到 O(log(m+n)) 呢?如果对时间复杂度的要求有 log,通常都需要用到二分查找。废话不多说直接上图...
2020-09-26 18:31:18
316
原创 关于num++和++num的效率
关于num++和++num的效率今天在写代码的时候发现了一件很有意思的事,使用++num比num++效率高了不少,查阅资料后发现num++在执行过程中是需要经历两个过程的,首先是将num读到寄存器,再将num对应的内存地址的值进行加一操作,调用的时候是使用的是寄存器中的值,而不是直接用地址中的值。++num在执行的时候是直接对num所对应的内存地址进行加一操作,调用的时候是直接使用该内存地址中的值进行操作。所以在使用++num时速度会相对来说要快那么一点点。...
2020-07-15 10:07:05
431
原创 C++STL之set()函数
目录set的定义set容器内元素的访问set常用函数insert()find()erase()删除单个元素删除一个区间的所有元素那个sizeclearset的定义set<typename> name;这里的typename可以使任何基本类型,如int,double,结构体或STL标准容器,例如vector,set,quene等。set数组的定义与vector类似set<...
2020-04-18 22:59:20
695
原创 散列
散列散列的定义除留余数法线性探查法平方探查法链地址法字符串hash散列的定义先来看一个简单的问题,给出N个正整数,再给出M个正整数,问这M个数是否分别在N个数中出现过。对这个问题,我们最直观的思路是:对每个欲查询的数x,遍历所有N个数,看是否有一个数与x相等。这种做法的时间复杂度为O(NM),但是NM都很大时,这是无法承受的。我么不妨用空间换时间,即设定一个bool型数组hashTable...
2020-04-17 19:32:15
294
原创 链表
链表处理概念为链表节点分配内存空间内存泄露创建链表查找元素插入元素删除元素概念线性表分为顺序表和链表,其中顺序表可以简单理解为数组,我们主要讨论链表。链表由若干个节点组成,且节点在内存中的存储地址通常是不连续的。链表的两个节点之间通过一个指针来从一个节点指向另一个节点,因此链表的节点一般由两部分组成,即指针域和数据域。struct node{ typename data; node* ...
2020-04-16 20:40:28
244
原创 sort()函数
排序题与sort()函数如何使用如何实现比较函数cmpint,double,char结构体数组容器的排序如何使用sor()的使用必须加上头文件#include和using namespace std;其使用方式如下:sort(首元素地址(必填),尾元素下个地址(必填),比较函数(非必填));如果不写比较函数,将默认对前面给出的区间进行递增排序示例:#include<iostre...
2020-04-16 17:21:21
242
原创 对象和类
对象和类过程性编程和面向对象编程OOP(面向对象编程)最重要的特性抽象封装和数据隐藏多态继承代码的可重用性类正是为了实现这些功能而产生的过程性编程和面向对象编程过程性编程首先考虑需要遵循的步骤,然后考虑如何表示这些数据;OOP首先从用户的角度考虑对象,描述对象所需的数据以及描述用户与数据交互所需的操作。(用户与数据交互的方式有三种:初始化,更新,报告)。...
2020-04-14 17:49:27
486
原创 内存模型和名称空间
单独编译C++允许程序员将组件函数挡在独立的文件中,可以单独编译这些文件,然后将它们链接成可执行的程序。如果只修改了一个文件,则可以只重新编译该文件,然后将它与其他文件的编译版本链接。如果我们决定对一个大程序进行拆分,问题在于,其中可能有多个函数使用了同一个声明,因此拆分后的文件都应该包含该声明。如果我们简单地将它们输入进去无疑使自找麻烦,如果以后要做修改,则必须记住对这两组声明都要进行修改。...
2020-04-13 20:19:31
371
原创 Dev C++使用array中遇到的问题
今天使用array时遇到了错误,代码如下:#include<iostream>#include<array>int main(){ using namespace std; array<double, 4> Arr; } 然后怎么都不通过!报错:[Error] #error This file requires compiler and l...
2020-04-12 20:47:39
949
1
原创 C++函数探幽
C++函数探幽内联函数原理用法引用变量创建引用变量将引用用作函数参数内联函数原理编译的最终产品是可执行程序——由机器语言组成。运行程序时,每条指令都有特定的存储地址,程序在调用函数时会来回跳跃并记录跳跃地址。内联函数提供了另一种选择,编译器将使用相应的函数代码替换函数调用。内联函数的运行速度比常规函数快,但代价是需要占用更多内存。如果执行函数代码的时间比处理函数调用机制的时间长,则节省时间...
2020-04-09 15:27:16
322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人