- 博客(12)
- 收藏
- 关注

原创 高效查询——折半查找的算法
今天又get到了好多新知识,和大家share一下吧。 折半查找 比如我买了一双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让你猜,你会 怎么猜? 答案:你每次猜中间数。 对吧,所以我们一般猜数字的时候都从中间猜,再根据大了或者小了调整。应用到算法上其实省去了好多麻烦,直接将查找范围缩小了将近一半,大大提高了运算效率。顾此算法非常高效,以下可供大家了解一下: int ...
2019-04-21 21:27:23
485
原创 Linux调试器-gdb使用 && Linux彩色进度条实现
Linux调试器-gdb使用 1.背景 程序的发布方式有两种,debug模式和release模式 Linux gcc/g++编译出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候加上 -g 选项 2.开始使用 gdb 二进制文件 退出:ctrl+d 或 quit 调试命令: list 行号 :显示 二进制文件 源代码,接着上次的位置往下列,每次列10行 list 函数名 :列出每个函数的源代码 r或run :运行程序 n或next :单条运行 s或
2020-10-30 23:41:30
361
原创 Linux编辑器-vim使用 && Linux编译器-gcc/g++使用
Linux编辑器-vim使用 1. vim的基本概念 vim有许多模式,其实我们常用的也大概就三种,分别是:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。各模式功能 区分如下: 正常/普通/命令模式(Normal mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode 插入模式(Insert mode) 只有在Insert mode下,才可以做文字
2020-10-27 21:40:16
335
1
原创 shell原理及Linux权限理解
shell命令以及运行原理 Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户并不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来和kernel沟通。 但这种操作如何理解?为什么不能直接使用kernel? 从技术角度来看:shell的最简单定义:命令行解释器(command interpreter) 主要包含: 将使用者的命令翻译给核心(kernel)处理 同时,将核心的处理结果翻译给使用者 对比于Windows GUI(图形
2020-10-23 22:23:16
346
原创 [leetcode] 判断链表是否有环及其变式
题目要求如下: 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 true 。 否则,返回 false 。 如图所示: 例1. 输入:head = [3,2,0,-4], pos = 1 输出:true 解
2020-10-22 22:46:16
238
2
原创 Linux相关命令总结
1. ls 语法: ls [选项] [目录或文件] 功能: 对于目录,该命令列出该目录下所有子目录和文件。对于文件,将列出文件名以及其他信息 常用选项: -a 列出目录下所有文件,包括以 . 开头的隐含文件 -d 将目录像文件一样显示,而不是显示其下的文件 -i 输出文件的 i 节点的索引信息 -k 以 k 字节的形式表示文件的大小 -l 列出文件的详细信息 -n 用数字的 UID( 用户ID号),GID( 用户所属祖ID号) 代替名称 ...
2020-10-18 20:31:45
695
原创 C文件操作及其文件缓冲区
本次我们主要讨论以下内容: 什么是文件 文件名 文件类型 文件缓冲区 文件指针 文件的打开和关闭 文件的顺序读写 文件的随机读写 文件结束的判定 1.什么是文件 磁盘上的文件是文件。 但是在程序设计中,我们一般谈的文件有两种:程序文件和数据文件 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。 数据文件 文件...
2020-04-13 10:12:28
1440
原创 字符指针 指针数组 数组指针 函数指针辨析
在初次学习指针中,我们了解到以下内容: 指针就是一个变量,用来存放地址,地址唯一标识一块空间 指针的大小是固定4/8个字节(32/64位平台) 指针是有类型的,指针的类型决定了指针的 ± 整数的步长和指针解引用操作的时候的权限(访问几个字节)。 指针的相关运算 注:本次主要讨论指针更高级的用法 1.字符指针 一般使用: 还有一种会使用方式: 代码 char* pstr = "hello b...
2020-04-10 17:07:06
242
1
原创 C语言--左旋字符串中的k个字符
看这么一个问题: 1.实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 拿到问题后,我们首先应该理解题意。什么是左旋?根据例题可以看出是把k个字符经过左旋放到后面,下面给出两种方法来求解: 方法一:暴力求解 #include <stdio.h> #include <stdlib.h> #include <a...
2019-06-05 17:17:17
220
原创 C语言典型题——求菲波那切数列第N项
菲波那切数列* 1.引入 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n&...
2019-04-27 13:27:46
1609
转载 神奇的时间戳
时间戳的小故事 1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX,新版于1971年发布。 那时的计算机操作系统是32位,时间用32位有符号数表示,则可表示 68 年, 用32位无符号数表示,可表示13...
2019-04-22 18:19:42
2273
原创 博客的第一破
怀着期望与激动去写人生的第一篇 大家好,本人新手小白一枚,初来乍到和大家打声招呼:大家好!(手动滑稽)好了,言归真转,作为一个大学生,出入小社会,带着些许的迷茫与未知的刺激进入大学。转眼就快大二了,还是没有对自己的规划,所以感到些许迷茫。在上半学期接触了编程,刚开始学的我头皮发麻,快考试时才发现自己不知不觉对他开始感兴趣。虽然还是只会那些简单的不能再简单的几行代码,但还是在那自娱自乐,那时我才发现...
2019-04-20 16:12:42
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人