自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 内存地址映射 整理1.0

    今天整理了一下大体的流程和思路,自己总结了一张图。

2018-05-14 03:18:20 223

原创 内存地址映射(上)

    内存地址这一块是很大的一块,今天就一点一点从了解到深入。    首先从物理内存开始说起,在32位Linux操作系统下有4G的物理内存,CPU直接访问的就是物理地址,也称物理寻址,当CPU到读取到内存中的内容时,先通过生成一个物理地址,然后通过总线,找到内存中的值去出返回给CPU。这一部分不再细讲。这是早期计算机的取址方式,而现代的计算机采用的是虚拟寻址:即就是CPU先生成一个虚拟地址来访问...

2018-05-12 16:55:25 2710

原创 堆和栈的详解

    说到堆和栈就必须从32位Linux操作系统的虚拟内存空间布局说起,32位中虚拟内存空间大小都是4G,Linux分配时用户态内存和内核态内存之比为3:1的分配的方式,而Windows的虚拟内存空间则是2:2的分配方式,每个进程都有一个自己独立的4G虚拟内存空间,这并不矛盾,最终是需要映射到物理内存的(当然不可能有4*n G 这么大的内存条)。 1.首先先说一说虚拟内存到物理内存的映射物理内存...

2018-03-10 16:02:53 1596

原创 让人又爱又恨的const

说起const也许你会感到熟悉但却又模糊,也许你的认知没错只是太过片面,也许简单的const使用你都会但一到复杂的const使用你就瞬间懵逼,那么你就应该好好看看const到底能干哪些事。 首先介绍一下在C和C++中const的使用有何不同,再说说C++对const的优化,以及再C++中const 和引用,一说就说多了。 1。先说说C语言和C++中const的区别 (1)首先

2017-11-14 20:35:39 261

原创 C++关于对象的生存周期

一个最简单的对象都会有四个最基本的方法,构造函数,析构函数,拷贝和赋值。但对于一个高效的程序,它会追求更少的代码。所以我们要清楚得理解各个对象的生存周期,能少创建一个临时量就少创建一个临时量。1.从最简单的说起,每当创建一个对象,它都是在栈上开辟的,所以和栈的操作一样,先创建的对象就最后再析构。2.但对于全局的对象和静态的对象那就会有一点不同了,全局的对象是在程序一开始的时候都已经构造完成了,而

2017-11-14 18:54:29 569

原创 关于CAS无锁操作

首先先从锁开始说起,锁在操作系统中是很重要的一部分,它可以保证程序在多线程的环境下安全进行,它通过对一个线程进行加锁,当一个线程加锁之后,其余的线程都要先挂起,放到后备队列里,直到这个进程释放锁之后,这也就是常说的悲观锁;还有一种锁叫乐观锁,顾名思义,它是通过另外一种方式来实现这种互斥而不是通过锁。它每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。简单的说就是

2017-11-02 14:42:52 749

原创 大小堆之堆排序

之前已经说过了好些排序了,今天就说一下最后一个排序,那就是堆排序,但是我们这个堆和内存中的堆还不是一个堆,我们现在所说的大小堆其实是一个树。接下来详细的说一说先要说堆,那我们还是先说说一些最基础关于树的一些概念,就先说说二叉树好了,因为我们今天用到的就是二叉树,首先二叉树也是一种数据结构,它有父节点和子节点,在二叉树中有2个叶子节点,父节点和第一个子节点的关系一般是2倍的关系;然而堆排序就

2017-10-25 14:38:52 550

原创 闲来无聊来说说归并排序

说到归并排序,其实归并排序还是比较重要的,归并归并,就是先分后并,也就和分治法比较相似了,直切主题吧,我们来谈谈归并排序的基本思想,就是先将数组平均分为两部分,看其中两部分是否有序,若两部分都已经有序,则只需要把他两合并成一个新的数列即可,但要是两个数组还是无序的,我们就要再分,直到里面只有一个元素的时候或里面的元素已经有序。然后我们再将它们一步一步地合并起来。文字可能不太好理解,那我来给大家

2017-10-24 18:25:18 218

原创 促其长谈之插入排序和希尔排序

说到排序,大家一下想起的一般都是什么快排,冒泡,往往很少想到插入排序和希尔排序,那么今天我们就来说说这两个排序吧顾名思义,插入排序就是在一个默认已经有序的一组数中插入一个数,插入之后,还要使得整个数列有序,这就是插入排序的基本思想,至于实现我们现在来说一下。void Swap(int &a,int &b){a=a+b;b=a-b;a=a-b;}void Insert_Sort(in...

2017-10-24 13:04:37 282

原创 冒泡和选择排序的理解

今天,我们来说说算法里最简单的两个排序,那就是选择排序和冒泡排序,但是在这两个排序中多少还是会出现一些问题,先说说我的个人经验吧,在最开始学习C语言的时候,最先接触到的就是这两种算法,当时对C语言本来懵逼着,再别说什么算法,什么冒泡。没办法,我也就就只能记住代码的是实现,随着时间一天天的流逝,问题也就越来越明显,来说说冒泡选择的思想,为什么要这么做?以及到后来程序记混了,选择和冒泡记差了,除此之外

2017-10-23 00:58:37 646

原创 关于快速排序的一些见解(递归和非递归以及优化)

最近看到一些笔试题,很多都考到了快速排序,故今天来此谈谈个人对快速排序的一些看法(理解可能有理解不恰到的地方,希望高人能多多指点)快速排序,顾名思义,那就是一个字 快,但其实有的时候并不是我们所想的这样,当我们排序的数目很小时,快速排序可能还不如插入排序来得简单利落。废话不多说,先来说说快速排序的核心思想首先,它是利用找基准数来进行排序,最原始的快速排序是从最左边第一个数开始,放在了一

2017-10-21 22:42:25 940 1

原创 关于后缀表达式的转换

我们一般人书写一个表达式,例如:2*3+6-5/9,这种书写被称之为中缀表达式,但在计算机中则不是用中缀表达式的,往往使用的是后缀表达式,后缀表达式更符合计算机的特性,所以效率也就会比中缀表达式的效率高很多,我们今天就来说一说,怎么把中缀表达式转换成后缀表达式。 我们先给出一个例题供大家来参考: X=A+B*(C-D)/E说到后缀表达式就得从入栈出栈开始说起,当数

2017-08-20 23:06:58 510

原创 关于两个数相乘, 求其为多少进制

今天和大家来说说,我前几天碰到的一道公司的笔试题,这道题并不是我们所学的语言知识这一方面的,在笔试中碰到这种题的几率还是挺大的,若用普通的方法去算,不是不可以,结果就是一个,卷子绝对是答不完的(大神们除外哈),题目是这样的: 假设在n进制下,下面的等式成立,567*456=150216,n的值是(); A: 9 B: 10 C: 12

2017-08-19 19:37:00 1963

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除