自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

如风

坚持做自己懒得做但是正确的事情,你就能得到别人想得到却得不到的东西。

  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 剑指offer之找出数组中的逆序对

在数组中的俩个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组的逆序对的总数。    看到这个问题时,我先想到的方法是遍历整个数组,扫描到一个数字,逐个比较它后面的数字大小。如果后面的数字比它小,则这两个数字就组成一个逆序对,这种方法的是假复杂度是O(N*N),显然,我们必须找到更加高效的算法。        想想其实可以使用排序来解决这个问题,每

2016-06-28 21:28:22 716

原创 找到第N个丑数

什么是丑数呢?丑数就是只包含因子2,3,5的数称作是丑数,在这里这种定义我是比较模糊的,所以上网查找了更加浅显的定义,丑数就是另一个丑数乘以2,3,5以后的结果(1除外,通常认为1是最小的丑数)。       通常,最简单的方法肯定是遍历数组,然后确定每一个数是否是丑数,这种方法是最简单并且直观的。bool IsUgly(int num){ while (num % 2 == 0)

2016-06-27 09:47:11 8663

原创 复杂单链表的复制

在这里复杂单链表指的是一个具有_sibling结点指针的单链表,这个指针可以指向单链表中的任意一个结点,这就让复制的工作难以进行,当复制_sibling指针的时候需要从链表的头节点开始经过n步才能找到,所以复杂链表的这种复制方法的时间复杂度是O(N*N)。但是一般情况下O(N*N)的时间复杂度是面试官所不能认同的算法,所以我们需要找到比这种方法快的方法。  复杂链表的结点结构:

2016-06-26 21:10:30 631

原创 数组中出现次数超过一半的数字

题目:数组中有一个数字出现超过数组长度的一半,请找出这个数字。列入输入一个长度为9的数组{1,2,3,2,2,2,5,4,2},由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。      看到题目的第一感觉就是要先把未排序的数组排序,排序的最小时间复杂度(快速排序) O(N*logN) , 加上遍历,时间复杂度为: O(N*logN+N)   第二种方法是考虑每次删除两个

2016-06-22 17:48:12 312

原创 malloc内存分配过程详解

说起malloc,但凡对C/C++有点基础的人在编写代码的时候都用过。我们调用malloc接口分配一段连续的内存空间,不使用时使用free可以释放这段内存空间。这些我们都已经比较的熟悉了。但是你知道malloc背后的调用机制吗?     C语言程序员都知道,malloc只是C语言库标准提供的一个普通函数,我们实现的malloc和库函数比起来效率要低很多,但是可以通过编写一个简单的malloc来

2016-06-15 19:33:06 25996 4

原创 数据结构之红黑树

一直觉得数据结构中最难以搞懂的结构之一就是红黑树了。所以一开始就对红黑树有一股“敬畏感”,所以在学习红黑树的时候在网上查找了很多资料。但是网上的资料在讲解时条理不清,有的只是点甚至一笔带过,树的变化也没有体现出来。自己总结了好久才把它给搞定,再此,向大家分享一下个人的思路。      首先,我们要知道红黑树的规则:  性质1. 节点是红色或黑色。  性质2. 根是黑色。

2016-06-14 19:42:48 473

原创 操作系统的常见进程调度算法

先来先服务 (FCFS,first come first served) 在所有调度算法中,最简单的是非抢占式的FCFS算法。 算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上。此时如果他又想排队了,只

2016-06-11 21:46:59 38657 5

原创 哈夫曼树实现文件压缩与解压缩

见识了360压缩的神奇后,想要实现自己的文件压缩程序,然后花了近一个星期的时间去完成文件压缩与解压缩,期间有很多坑,花了很长时间去调试它,最后把坑给填了(真心的感受到了程序员写代码时的小小粗心会把自己给坑惨)。以下是些程序时的一些坑:在windows下回车的字符是‘\r’'\n',编译器在读取字符时读取到'\r'后再读取到'\n'就会转换为回车。。。在解压缩小文件时不会出现的问题在解压

2016-06-06 21:23:14 24468 15

原创 数据结构之二叉搜索树(BinarySearchTree)

一。定义:二叉搜索树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:1. 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2. 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3. 任意节点的左

2016-06-03 08:32:14 653

哈夫曼树实现文件压缩

使用小顶堆,哈夫曼树,实现一个简单的文件压缩程序

2016-06-11

银行家算法

详细的银行家算法c语言代码 int available[SIZE];//可利用资源矩阵 int claim[SIZE][SIZE];//所需资源最大量矩阵 int allocation[SIZE][SIZE];//已分配资源矩阵 int need[SIZE][SIZE];//需要资源矩阵 int request[SIZE][SIZE] = { 0 };//记录某个进程申请各个资源类中的资源实例的数量 int finish[SIZE] = { 0 };//工作变量,用于判断进程是否已经执行过,初始状态全部为0,即未执行 int p[SIZE];//记录序列执行顺序 int ava;//记录系统有多少个资源类 int process;//记录进程数量 int r;//记录当前要申请资源的进程的序号

2016-05-25

空空如也

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

TA关注的人

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