自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 项目:视频存储播放修改软件

视频点播项目

2023-04-02 23:21:44 352 1

原创 UDP服务器

udp套接字群聊实现

2022-12-16 19:09:44 1004

原创 读写锁的学习与实验

读写锁的简单了解

2022-12-15 16:17:51 364

原创 Linux简化版线程池

Linux简单线程池模拟。

2022-12-09 11:22:37 492

原创 Linux下POSIX信号量以及基于环形队列的生产消费模型

Linux环形队列,信号量,互斥锁模型

2022-12-08 11:05:12 214

原创 基于阻塞队列的生产消费模型

Linux基于阻塞队列的生产消费模型

2022-12-07 21:05:14 171 1

原创 Linux条件变量

Linux条件变量简单练习。

2022-12-07 15:33:11 1272

原创 Linux线程基础

Linux线程与互斥锁的基础学习

2022-11-29 21:34:17 530 2

原创 Linux信号基础

linux信号简单学习与理解,信号原理、以及一些小测试,一些小函数的介绍,希望大家多多支持,都需回持续跟新的。

2022-11-29 12:27:15 499 1

原创 linux进程间通信之共享内存

linux进程间通信,共享内存

2022-11-04 15:49:55 776

原创 linux管道的应用

linux管道的简单应用

2022-11-01 20:21:16 70

原创 linux进程间通信之管道

linux进程间通信匿名管道和命名管道的原理以及对进程间通信的理解。

2022-10-31 23:04:01 713 4

原创 linux下动静态库的制作,打包,以及模拟第三方库使用

linux下动静态库的制作以及使用,以及自己模拟制作第三方库,以及模拟使用第三方库。

2022-10-29 16:41:52 1119 3

原创 linux下软硬链接的解读的理解

软件链接的解读与理解。俩条指令ln ;ln -s;

2022-10-28 10:53:35 1180

原创 c语言的缓存区

文件管理,缓存区的理解

2022-10-24 20:18:07 820 1

原创 剑指 Offer II 002. 二进制加法

二进制加法

2022-08-18 20:51:12 68 2

原创 减绳子一(剑指offer14)

减绳子

2022-08-16 21:35:01 146 2

原创 归并排序的新用法。

归并排序新奇用法。

2022-08-12 11:59:35 329

原创 排序的本质:

不一样的排序:

2022-08-11 13:01:13 92

原创 柱状图中最大的矩形

单调栈的应用之一。

2022-08-01 20:02:10 71

原创 牛客网:BM20 数组中的逆序对,一句一注释,一看就会。

详细解释每一句逻辑。

2022-06-02 18:26:23 174 1

原创 linux 初学,环境搭建及用户管理

1,环境搭建这里直接使用用服务器,可以买一个华为云,百度云,阿里云等等(学生买的话价格不是很贵,一百多到几百的都可以,目前学习的话就买一个丐版就好了,也就是最低配版本的,一核的就完全够用了),通过xshell软件进行远程登录。2,登录双击列表输入你买的账号密码进行登录:注意第一次登录都是root账号,也就是超级管理员权限,最高缺陷登录,之后我们可以创建子账号,以后我们就可以用子账号登录了,这也是公司的常态,一般在公司是不会有root账号的权限的。3,用户管理创建用户:

2022-05-14 14:37:50 283

原创 海量数据排序—外排序之归并实现外排序排序

一,什么是外排序1.其实外排序就是在文件中进行排序,那我们知道在文件中访问数据有很多限制,比如不可以随机访问啊,只能通过文件指针访问啊,等等。那我们为什么还要在文件中排序也就是外排序呢?【1.】数据量过大,比如海量数据:举个例子,比如又100亿整形需要你排序,我们算一算100亿个整形放在内存中要多大空间呢。1KB=1024byte;1MB=1024KB:1G=1024MB;我们知道一个整形是4个字节,也就是4byte;1024*1024*1024大概估计是10亿的样子,也就是说1

2022-04-24 20:38:34 784 1

原创 数据结构八大核心排序,详细过程。

目录一,排序种类1.直接插入排序2.冒泡排序3.希尔排序4.快排(1.)快排单趟排序三种写法【1】hoare版本单趟排序【2】挖坑法【3】前后指针法 最新的写法,写起来最简单,最不容易出错(2.)快排【1.】快排递归【2】快排非递归【3】快排的优化一三数取中优化【4】快排的优化二小区间优化5.归并排序(1.)归并排序递归写法【1】归并排序子函数【2】归并排序(2.)归并排序循环写法6.选择排序7.堆排序...

2022-04-23 18:51:16 1526

原创 堆和堆排序的实现

目录一,堆的实现1.结构2,函数接口3,接口实现4,代码链接二,堆排序的实现1.建堆2,选择排序思想,只不过是用堆来选择。一,堆的实现1.结构//堆的底层是一个完全二叉树,所以说我们用数组实现是不会有空间的浪费的。//物理上是一个数组,但是逻辑上可以把他想象成一颗二叉树。typedef int HPDataType;typedef struct Heap{ HPDataType* a; size_t size; s...

2022-04-10 19:16:48 588 1

原创 数据结构栈和队列的实现。

目录一,结构1.栈结构2.队列结构二,函数接口1.栈的函数接口2.队列的函数接口三,函数接口的实现1.栈的接口实现(1) 初始化(2)销毁(3)插入数据(4)删除数据(5)判空(6)返回栈元素个数(7)返回栈顶数据2.队列的接口实现(1)初始化队列(2)销毁队列(3)插入数据(4)删除数据(5)判空(6)返回队列元素个数(7)返回队头数据(8)返回队尾数据三,代码链接一,结构1.栈结构t

2022-04-10 18:38:14 490

原创 atoi;字符串转整形的模拟实现

1.代码://1. 空指针//2. 空字符串//3. 空白字符//4. + -//5. 非数字字符//6. 超大数字////#include<LIMITS.H>#include <ctype.h>#include<assert.h>//#include<stdlib.h>enum State{ INVALID,//非法 VALID //合法};//合法情况只有一种,二非法情况有很多,所以我们先默认初始化设置

2022-02-26 23:22:27 113

原创 C语言实现通讯录,进阶版,动态开辟空间,简单文件操作,支持增删查改,排序,可以保存数据到文件,程序运行自动读取数据到程序等。

目录代码注释很详细,后面附带有代码链接哦!!!一,依然是为了代码规范,写在了三个文件中二.test.c三.Contact.h四.Contact.h1.初始化的同时时候把数据从文件加载到程序中2.加载数据到文件3.从文件中加载之前保存到文件的数据到程序六.成品展示1.输入展示2.删除展示3.修改展示4.排序展示,按照年龄排序六,代码链接代码注释很详细,后面附带有代码链接哦!!!一,依然是为了代码规范,写在了三个..

2022-02-19 20:41:41 453

原创 C语言memcpy和memmove的实现。

一,memcpy实现:void* my_memcpy(void* dest, void* src, size_t n){ void* ret = dest; assert(dest && src); //保证数据的有效性。 while (n--) { *(char*)dest = *(char*)src; dest = (char*)dest + 1; src = (char*)src + 1; } return ret;}我们来分析一下:1.函

2022-01-25 00:02:44 2049

原创 字符串倒置:不是逆置哦。

注意:倒置是以单词为单位的“逆置”,不是字符串的逆置;思路:第一我们把每个单词分别逆置,然后再把字符串整体进行逆置;、思路讲完我们上代码:重点是靠考虑单词结束表中,数组的越界要处理好。#include<stdio.h>#include<string.h>void reverse(char* left,char* right){ while(left<right) { char t=*left; *...

2021-11-28 20:46:18 545

原创 c语言数据存储:

一. 整形在内存中的存储:原码、反码、补码计算机中的整数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位1.负整数:原码,反码,补码,三种表示方法各不相同。原码直接将二进制按照正负数的形式翻译成二进制就可以。反码将原码的符号位不变,其他位依次按位取反就可以得到了。补码反码+1就得到补码。2.正整数:原、反、补码都相同。对于整形来说:数据存放内存中其实存放的是补码。计算机内部整数的运算实际上也是补

2021-11-27 13:44:24 231

原创 打印杨辉三角

方法一:void yangHuiTriangle(int n){ int data[30][30] = { 1 }; //第一行直接填好,播下种子 int i, j; for (i = 1; i < n; i++) //从第二行开始填 { data[i][0] = 1; //每行的第一列都没有区别,直接给1,保证不会越界。 for (j = 1; j <= i; j++) //从第二列开始填 { data[i][j] = data[i - 1][j]..

2021-11-24 19:07:08 216

原创 数组越界奇葩现象:初闻不知曲中意,再闻已是意中人。

数组越界死循环奇怪问题:这段极其简单的代码会造成什么样的结果呢。我们来简单分析一下:1.局部变量定义在栈区,而栈区的内存使用一般是优先使用高地址。2.a[12]的地址与i的地址一样,最后一次i被改成0了。程序就死循环了。3.由于发生了死循环,即使越界了也不会报错,程序无法停下,无法报越界错误。4,要按照不同的编译器来考虑越界几个会越界到i,不同编译器情况稍有不同。5,在release版本中,编译器会主动优化,不会形成死循环,但打印结果是不对的,会打印13个hello bit**.

2021-11-21 13:36:50 236

原创 扫雷小游戏,初级。

核心思路:1,我们准备俩个棋盘,这里的棋盘存储数据我们使用二维数组,第一个棋盘时用来布置雷,排查雷,第二个棋盘用来给用户展示他排查到的雷。2,我们排查到非雷时需要计算出非雷坐标周围有几个雷,但当我们遍历坐标周围时,在边缘情况就会造成越界。所以我们直接把棋盘设置比扫雷区域扩大“一圈 ”,比如我们要9*9棋盘,我们就开一个11*11的棋盘,只用中间9*9就好了。接下来就是代码实现了:一样,为了代码清晰直观,方便后期维护修改,我们把测试,声明,函数实现分在三个文件里。上带码:test....

2021-11-20 21:40:24 2219

原创 c语言小知识:

下面哪个是指针数组:( A)A. int* arr[10];B.int * arr[];C.int **arr;D.int (*arr)[10]; (数组指针)指针数组是一个数组,该数组的每个元素是一个指针A:正确,定义了一个数组,该数组中有10个元素,每个元素都是int*的指针类型B:错误,编译失败,定义数组时,要给出空间的大小,如果没有给时,必须要给出初始化结果C:错误,定义了一个二级指针D:错误,*和arr先结合,说明arr不是数组。实际上arr是一个指针,一个..

2021-11-16 22:37:08 508

原创 c语言细节。

题目:答案:细节:1.在%c的前面写一个空格会消化掉前面所有的空白字符,然后读取一个字符。,然后读取一个字符2.在%c的后边发给一个'\n',其实在输入时候就会消化掉这个\n字符,不会为下次留下空白字符的隐患...

2021-11-15 23:06:15 313

原创 c语言细节。

上图:答案: > 解释·:C语言中,0为假,非0即为真。全局变量,没有给初始值时,编译其会默认将其初始化为0。i的初始值为0,i--结果-1,i为整形,sizeof(i)求i类型大小是4,但是sizeof的返回值类型实际为无符号整形,因此编译器会自动将左侧i自动转换为无符号整形的数据(类型转换),-1对应的无符号整形是一个非常大的数字,超过4或者8,故实际应该>。...

2021-11-15 22:34:00 977

原创 看完没收获来砍我。可以重点看,最剑指 Offer 40小的k个数(按照不同的实际情况采用不同的算法)

目录题目:1,排序算法,采用效率好的堆排序。2,采用堆来计算。3,特使要求下,灵活使用堆来解决实际问题。(1)提出新的现实要求:如果现在由100亿个数据,我们要找出他的最小前100呢。*****************如果采用方法2,不合理之处**********************方法3:题目:1,排序算法,采用效率好的堆排序。我们直接使用堆排序。c语言的话,我们可以写一个向下调整算法,写一个堆排序算法。int* getLeastNu.

2021-11-14 18:08:05 455 7

原创 三子棋小游戏,目前还不够智能。

以下时代码:代码内部注释非常全,就解释了。玩游戏过程,电脑时随机下的,非常的不智能:哎test.c(测试部分)#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void meau(){ printf("**************************\n"); printf("***1,paly*****0,exit******\n"); printf("**************************\n");.

2021-11-08 11:07:53 2245

原创 冒泡排序算法讲解

2021-11-08 09:47:57 60 2

空空如也

空空如也

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

TA关注的人

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