自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 死锁

死锁:死锁是指两个或两个以上的进程进在执行过程中,由于资源竞争或由于相互通信而造成的一种阻塞式现象,如果没有外力影响。那么它们将永远的持续下去, 此事称系统产生死锁现象,这种永远互相在等待的进程成为死锁。四个产生必要条件:1、互斥条件;2、请求和保持条件;3、不可剥夺条件;4、环路等待条件;

2017-05-29 23:21:16 787

原创 经典排序算法-快速排序(挖坑法、前后指针法)、基数排序

快速排序在实际应用中是比较表现好的排序算法。快速排序我用两种方法实现它。第一种为方法,形象的称为:挖坑法基本思路:1、寻找pos位,然后将其分为两段数组,然后对这两段数组递归排序;                    2、指定一个基数temp(三数取中法),定义两个指针begin一个指向起始位置,end一个指向最后一个元素的位置。begin寻找比基数(temp)大的数字,找到 后将b

2017-05-26 14:21:02 5140

原创 排序算法(中)--堆排序、计数排序

堆排序:堆排序是利用建堆过程中的向下调整算法,进行排序。升序排列时,应建立大堆,每次选出最大的堆顶的数,然后将堆顶的数据与最末端的数据交换,然后减小堆的大小,进行再次调整。重复以上操作即可。降序排列时,应建立小堆,与上述过程相同。大小堆:向下调整算法:我引用殷人昆老师数据结构里面的给大家看看思想。堆排序的代码为:void AjustDown(int* arr,

2017-05-25 01:07:47 1223 1

原创 剑指offer--入栈、出栈正确性的判断

判断元素出栈、 入栈顺序的合法性。 如: 入栈的序列(1,2,3,4,5) , 出栈序列为(4,5,3,2,1) 是合法序列, 入栈的序列(1,2,3,4,5) , 出栈序列为(1,5,3,2,4) 是不合法序列我的解题思路:创建一个辅助栈来模拟入栈与出栈过程,从而判断其入栈、出栈顺序是否合法。定义两个数组In与Out分别存储入栈序列与出栈序列,然后将栈序列的第一个元

2017-05-25 00:32:29 1377 6

原创 二叉树经典题系列-二叉树的镜像

二叉树的镜像:将一个二叉树的左右子树,调换位置。即下图的形式:递归的思想是:从根节点的左右子树进行交换,然后以根节点的左子树为根节点,而后以根节点的右结点为根节点,进行左右子树交换。遇到空节点或叶节点直接返回。下面求二叉树镜像的函数代码实现:templatevoid MirroTree(TreeNode * root){ if (root == NULL) retur

2017-05-24 00:29:18 691

原创 面试常见排序算法(上)

查找和排序是算法的的入门知识,其思想可用于很多算法当中,应用性比较常见。所以在面试中经常会问到排序算法及相关的问题。下来是我对这些简单排序算法的思想及其特点的整理。冒泡排序      冒泡排序是最原始的排序方式之一。它的原理就是通过相邻两个数的比较和交换将小的数字交换到最前面。这个过程类似于水泡上升的过程,因此而得名。举个例子:例如4,3,6,1,8;第一次8与1比较,无需交换;然后1与6

2017-05-12 18:58:43 1340 4

原创 完全二叉树的判断

完全二叉树(Complete Binary Tree):若设二叉树的深度为h,除第h层外,其他各层(1~h-1)的节点数都达到最大个数,第h层所有的节点都连续集中在最左边,这就是完全二叉树。完全二叉树由满二叉树而引起来的。对于深度为K的,有n个节点的二叉树,当且仅当每一个节点都与深度为K的满二叉树中编号从1到n的节点一一对应时称之为完全二叉树。注意:满二叉树一定是完全二叉树,但完全二叉

2017-05-04 23:51:44 4886

原创 Linux下模拟实现进度条

Linux下模拟实现进度条 在Linux系统下模拟进度条,首先需要了解一些简单基础知识:    1、在Linux系统下,\r是回车符,\n是换行符,回车是行不变光标回到该行的起始位置,换行是跳转到下一行,但是光标位置不变;    2、C\C++的输入输出都有缓冲区,都为行缓冲,行刷新,通过回车换行刷新到I\O区;    3、1秒 = 1*10的三次方毫秒 = 1*10的6次方微秒

2017-05-01 21:33:52 1465 1

空空如也

空空如也

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

TA关注的人

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