- 博客(23)
- 资源 (1)
- 问答 (9)
- 收藏
- 关注
原创 算法大总结之----10大经典排序算法(从小到大排列)
1. 冒泡排序冒泡排序,顾名思义,就是出头的被排序。其算法复杂度为O(n2n^{2}n2),空间复杂度为O(111)。1.1. 算法讲解将第j个元素和后面的元素依次对比,如果大于序列为j+1的元素,就进行交换。作为对比的基础元素j取值范围为"0 => size - 2"。因为j + 1不可超过size - 1。因而,需要进行对比的j有size - 1个,这个组别用字母i表示。当排...
2020-05-02 10:06:05
9686
原创 提升效率之如何打印出漂亮的带颜色的日志(输出高亮)
日志系统对于一个软件的维护是很重要的,对于直接在本地打印的信息,可能包含非常多,如何才能快速发现自己想要打印的东西呢?带上颜色的输出,绝对是很好的选择。使用c/c++的输出可以照搬shell的,那么先来看下shell怎么花里胡哨的输出。1. 花里胡哨的shell打印第二段就是我想要的结果,而第一段是错误的输出,颜色该结束还没结束,这个下面会说到原因。(不过我感觉都挺好看hhh,程序员的快乐...
2020-03-28 10:15:46
4538
1
原创 Linux快捷键总结
linux有很多快捷键,使用快捷键可以提高效率。每次使用总是去查,简直不要太麻烦,其实记住几个常用的就好了,这次总结一下。1. 常用快捷键功能Ctrl + 左右键在单词之间跳转Ctrl + A跳到本行的行首Ctrl + E跳到页尾Ctrl + U删除(剪切)当前光标前面的文字Ctrl + K删除(剪切)当前光标后面的文字Ctrl + ...
2020-03-25 16:39:25
306
转载 “三次握手,四次挥手”你真的懂吗?(转载)
这篇文章写的非常细,读后感觉豁然开朗。因此分享给大家。转载自:“三次握手,四次挥手”你真的懂吗?记得刚毕业找工作面试的时候,经常会被问到:你知道“3次握手,4次挥手”吗?这时候我会“胸有成竹”地“背诵”前期准备好的“答案”,第一次怎么怎么,第二次……答完就没有下文了,面试官貌似也没有深入下去的意思,深入下去我也不懂,皆大欢喜!作为程序员,要有“刨根问底”的精神。知其然,更要知其所以...
2020-03-23 15:41:04
196
原创 socket编程(一):TCP/UDP基础篇
1. 关键的结构体在说sockaddr_in之前,我觉得有必要列出来sockaddr这个结构体。1.1. sockaddrsockaddr是通用的socket地址,其定义在#include <sys/socket.h>中。struct sockaddr{ sa_family_t sin_family; //地址族,一般使用AF_INET char sa_data[1...
2020-03-13 21:06:37
505
原创 c语言 神奇的可变参数
关于sprintf,printf,这些函数,参数都是不固定的。而这样编程方式,也可以自己来搞定。c语言提供了几个宏就是做这个的。va_list //一个很特殊的类型type va_arg(va_list ap, type);void va_start(va_list ap, last_arg);void va_end(va_list ap);void va_copy(va_list ...
2020-03-11 17:44:20
203
原创 c语言 柔性数组的使用
先说c++吧typedef struct _node { int num; int age[];}node;这个就是所谓的柔性数组。结构中最后一个元素允许是未知大小的数组。(必须是最后一个,这很重要,下面解释)可以试一下,sizeof(node)是4,若将num去掉,sizeof(node)就是1,我们知道空的struct,sizeof是1。有此可发现,柔性数组并...
2020-03-11 11:36:26
687
原创 sqlite3 打印的三种方式
当使用SELECT语句等的时候,想要打印信息,这里提供三种方式1. 使用sqlite_exec的回调函数。sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)第四个函数data是callback的第一个参数。int displaycb(void *para,int ...
2020-03-07 15:56:11
2907
原创 pthread_cond_wait和pthread_cond_signal的使用方法梳理
这两个函数是多线程操作中非常重要的,也是相对来说难理解的。这里梳理一下。首先是函数介绍,int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)这里有两个参数,cond和mutex。cond是条件,这个值可以用宏做声明:pthread_cond_t cond = PTHREAD_COND_INITIA...
2020-03-04 17:44:04
1302
5
原创 线程优先级学习笔记
刚刚学习线程,有一点记录一点。#include <pthread.h>#include <stdio.h> pthread_mutex_t mutex ;void *print_msg(void *arg){ int i=0; printf("this is %d\n",(int*)arg); pthread_mutex_l...
2020-03-04 10:30:00
185
原创 makefile中四种赋值方式
makefile常见的四种赋值有"=",普通等号,不说了":=",会把之前的赋值覆盖掉"?=",若没有赋值,则赋予等号后的值。"+=":普通+=,也不说了今天突然看到的,以前都没注意":=",记录下。“?=”其实也挺有用,担心赋过值,不确定时候,就用这个,保证不会出错。...
2020-03-02 16:02:42
532
原创 linux下编译动态库
#include <stdio.h> //num.cint add_num(int a, int b){ return a+b;}int sub_num(int a, int b){ return a-b;}#include <stdio.h> //print.cint print_num(int n){ printf("result ...
2020-02-21 19:48:17
608
原创 MySQL数据库提供了四种级别的事务隔离,其中默认的隔离级别是?
链接:https://www.nowcoder.com/questionTerminal/4bd14ee6743841e29d5c899a00ccdf93来源:牛客网MySQL数据库提供了四种级别的事务隔离,其中默认的隔离级别是?A.Serializable(串行化)B.Repeatable read(可重复读)C.Read committed(读已提交)D.Read unco...
2020-02-21 17:20:59
928
转载 二叉树知识点汇总
https://dandanlove.com/2017/10/20/about-binary-tree/二叉树知识点汇总二叉排序树是具有下列性质的二叉树:若左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; 左、右子树也分别为二叉排序树。...
2020-02-21 17:20:45
275
原创 linux编译静态库
#include <stdio.h> //num.cint add_num(int a, int b){ return a+b;}int sub_num(int a, int b){ return a-b;}#include <stdio.h> //print.cint print_num(int n){ printf("res...
2020-02-21 17:19:00
922
原创 记录一次gcc编译遇到的问题
一开始只会编译一个.c文件 gcc xxx.c -o xxxxx得到可执行文件,带头文件就不会了,然后查了下,加上 “-I” + “./”(我的是当前目录)。这样gcc就会在当前目录寻找 .c文件所包含的 .h文件。然后尝试编译这个video_json.c, 发现还是有问题,怎么找不到cJSON的东西。可cJSON.h明明已经包含在当前目录里了啊。。后来查了下发现,才只写gcc vid...
2020-02-19 20:07:05
257
原创 c语言将 unix时间戳转为 年-月-日 时:分:秒 库函数方法
#include <string.h>#include <stdio.h>#include <time.h>void timestamp(char* test_time) { struct tm* t; time_t tt; time(&tt); t = localtime(&tt); sprintf(test_time,...
2020-02-18 10:51:34
2088
原创 虚拟机linux插入U盘搜索不到怎么整
我在/dev下找,使用fdisk,都没有找到插入的u盘。看了下服务vmware的USB也是开启的。最后发现vmware的USB是2.0,改成3.0就好了。又白白浪费了半天时间。。...
2020-02-14 17:29:49
1101
原创 剑指offer: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
后序遍历就是,最后一个节点是根节点,前面的序列可以分为两个序列,一个是左,一个是右,左序列节点值小于根节点的值,右序列节点值大于根节点值。当然,对某非叶一节点,也可没有左或右子树。class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if (sequence.empty()) ...
2019-11-10 17:06:21
207
原创 剑指offer 变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloorII(int number) { if (number <= 0) return 0; if (number == 1) ...
2019-09-21 09:13:33
92
原创 牛牛的背包问题
牛牛准备参加学校组织的春游, 出发前牛牛准备往背包里装入一些零食, 牛牛的背包容量为w。牛牛家里一共有n袋零食, 第i袋零食体积为v[i]。牛牛想知道在总体积不超过背包容量的情况下,他一共有多少种零食放法(总体积为0也算一种放法)。题目描述牛牛准备参加学校组织的春游, 出发前牛牛准备往背包里装入一些零食, 牛牛的背包容量为w。牛牛家里一共有n袋零食, 第i袋零食体积为v[i]。...
2019-09-21 09:13:13
406
原创 剑指offer,用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { while(!stack1.empty()) { s...
2019-09-12 10:01:39
84
makefile函数整理.pdf
2020-02-23
python中,变量的身份id怎么理解
2021-07-18
用户态和内核态的通讯,ioctrl和copy_from_user,什么场景使用
2021-07-06
关于make命令 报错的疑问
2020-01-29
安装corsstools-NG的问题
2019-12-21
为什么MSS计算需要MTU减去IP TCP报头大小?
2019-11-30
设置一绝对地址为0x67a9的整型变量的值为0xaa66
2019-11-06
cout和printf对unsigned的输出为何不一样
2019-11-05
自定义函数传递进去的数组似乎有点问题,请帮我看一下
2019-02-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人