自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法导论学习笔记06——二叉搜索树

二叉搜索树以二叉树的形式阻止数据,每个节点除了记录key值和卫星数据(非key值的数据)外,还需要三个指针:left(指向左孩子)、right(指向右孩子),p(指向其父亲)。 二叉搜索树是一种特殊的二叉树,并满足特性:如果x是二叉搜索树中一个节点,如果y是x左子树中的一个节点,那么必有y.key<=x.key。同理,如果y是x右子树中的一个节点,那么必有y...

2019-07-17 23:48:15 220

原创 文件名排序(自然序)

文件名就是一个字符串,在对两个文件名进行比较时,当文件名中有数字时,仅仅按照字典序逐个字符的比较会出现如下不合理的情况: 文件:10_a, 11_a, 100_a 排序的结果是10_a, 100_a, 11_a对文件名排序的比较函数C实现如下:#include <stdio.h>#include <ctype.h>#inclu...

2019-07-14 18:53:20 1073

原创 算法导论学习笔记05——求一个数列中第N大的数字

本篇文章根据快速排序的分治思想在排序的情况下求解一个数列中第N大的数字。关于快速排序的原理和实现算法导论学习笔记04——快速排序。 快速排序中介绍了一种PARTITION()函数,它将原数组A[r]使用一个主元x(A[]的某个成员)换分成大于x和小于x的两部分。PARTITION()执行后,主元x被交换到A[r]的k位置,并满足A[0 ~ k-1]都小于A[k],...

2019-07-14 18:03:45 424

原创 算法导论学习笔记04——快速排序

快速排序期望时间复杂度为nlg(n),最坏情况下时间复杂度为n^2。其满足空间原址性:任何时候都只需要常数个额外空间存放临时数据。是否满足稳定性(假定在待排序的记录序列中,存在多个具有相同的关键字的记录,经过排序,这些记录的相对次序保持不变)由PARTITION函数的具体实现决定。 快速排序的原理是使用PARTITION函数将输入数组分成3部分:ARRAYa,AR...

2019-07-09 23:35:39 1259

原创 算法导论学习笔记03——堆与堆排序

目录1 堆1.1 堆的定义1.2 大根堆、最大优先队列2 堆排序3  C代码与测试3.1 堆排序C代码3.2  测试代码        首先介绍什么是堆,以及大(小)根堆和最大(小)优先队列;然后介绍堆排序算法;最后给出堆排序的C代码和测试脚本。1 堆1.1 堆的定义        (二叉堆)是一个数组,它可以被看成一个近似完全的二叉树,树上的每一个节点...

2018-12-02 23:13:40 176

原创 Linux中各文件占用的Cache统计

        统计Linux中各个文件占用cache的情况,使用工具fincore。        可以从GitHub上获取到源码:https://github.com/david415/linux-ftools.git        下载后,./configure; make; make install。在 /usr/local/bin 目录下生成3个工具:fadvise  fallo...

2018-11-29 12:53:45 1431

原创 算法导论学习笔记02——最大子数组问题

        最大子数组问题:输入一个数组A,在数组A的众多非空连续子数组中,找到和最大的一个。目录暴力求解方法分治思想求解分治思想C代码测试脚本 暴力求解方法        对一个长度为A的数组,可以存在个非空连续子数组,我们可以暴力求得所有非空连续子数组的和,输出和最大的一个。伪代码如下: FIND-MAXIMUN-SUBARRAY(A, low, hi...

2018-11-13 15:23:08 582

原创 算法导论学习笔记01——算法时间复杂度

1、时间复杂度定义定义:对于函数  存在函数 和常数  ,当  时,满足不等式:,则称  是 的一个渐进紧确界。记做: 或 。当只有一个边界时,就是渐进上界或渐进下届:对于函数  存在函数 和常数  ,当  时,满足不等式:,则称  是 的一个渐进上界。记做:  。对于函数  存在函数 和常数  ,当  时,满足不等式:,则称  是 的一个渐进下界。记做:。当边界只能大于(小于...

2018-11-03 23:30:21 656

原创 每个程序员半小时内必须解决的5个编程问题(C语言实现)

        最近关注的几个算法的公众号都看到了如题的一篇文章,后1道题单拿出来我肯定不能半个小时内解决。前三道题非常基础,相信大部分人能用自己熟悉的语言很快解决,而且解决的方法可以多种多样,这里说一下我对于最后两题的分析以及代码。问题4        编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。        分析...

2018-09-17 22:31:28 1210

原创 回溯思想——八皇后问题

首先描述一下8皇后问题: 在8x8的国际象棋棋盘上,放上八个皇后,使得每一个皇后都不能直接吃掉其他的皇后。在国际象棋中,皇后可以吃掉同行、列、45°线、135°线上的其他子。介绍一下回溯法: 回溯法与穷举法非常相似,只是通过“剪枝”的思想,减少穷举的次数。可以将回溯法理解为一种加强版的穷举法。 首先来介绍一下穷举法解八皇后问题,可以这样想:...

2018-09-16 10:55:10 347

原创 sprintf和snprintf 在同一buffer既是输入又是输出时的不同表现

问题介绍:        sprintf():格式化输出到指定的buffer中,当年刚刚知道这个函数的时候喜欢的不得了,不考虑执行效率的情况下,很多的字符串相关操作都可以用这个函数搞定。        后来知道了snprintf(),比前者多了一个参数,一直认为仅仅是前者的安全版本。        最近发现了一个两者不同的地方,直接看代码:#include &lt;stdio.h...

2018-09-16 10:29:16 660

空空如也

空空如也

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

TA关注的人

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