自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C-项目】网盘(二期,线程池版)

先登录用户,登录成功后,即可浏览服务器的文件系统。通过命令上传或下载文件。

2024-09-18 11:06:22 738

原创 【C-项目】网盘(一期,线程池版)

登录服务器后,即可浏览服务器的文件系统。通过命令上传或下载文件。

2024-09-15 22:58:22 2232

原创 【MySQL-初级】mysql基础操作(账户、数据库、表的增删查改)

数据库账户操作,数据库操作,数据库表的操作

2024-09-14 23:14:57 3241

原创 【C-项目】网盘(一期,无限进程版)

登录服务器后,即可浏览服务器的文件系统。通过命令上传或下载文件。

2024-09-14 23:08:53 1090

原创 【C-实践】文件服务器(4.0)

一个练习tcp + epoll + 线程池 + 生产者消费者模式的小项目。

2024-09-07 19:02:50 1253

原创 【C-实践】文件服务器(3.0)

一个练习tcp,epoll和线程池的小项目。

2024-09-07 18:32:08 1020

原创 【C-实践】网络聊天室(1.0)

一个练习tcp+epoll的小项目。

2024-09-06 12:09:51 1096

原创 【C-查找算法】哈希查找

建哈希表(哈希表下标是原数组元素经过哈希函数处理后的哈希值,哈希表值是原数组元素的下标或地址)哈希冲突:两个不同数组元素,对应的哈希值是一样的,在哈希表的同一位置上。将待查找值,经过哈希函数处理后,在哈希表中查询。输出:找到就返回目标值的下标,找不到返回-1。时间复杂度:建哈希表O(n),查询O(1)输入:数组地址,数组长度,待查找的目标。解决哈希冲突:开放寻址法、链表法。1.0 哈希表在查找函数内。有可能会触发哈希冲突。

2024-09-05 23:26:30 456

原创 【C-实践】文件服务器(2.0)

使用了tcp+epoll+进程池,实现文件下载服务器退出方式:采用温和手段,通知子进程让其自己退出(在1.0的基础上,修改了sendFd和recvFd函数,多加了一个退出标志位参数,用来指定子进程是否退出)传输方式:采用零拷贝的方式完成(文件内容不再经过用户态缓冲区,直接从内核缓冲区发送出去)(在1.0的基础上,增加了函数)

2024-09-05 13:59:39 745

原创 【C-实践】文件服务器(1.0)

使用了tcp + epoll + 进程池,实现文件下载服务器。

2024-09-04 15:15:01 1117

原创 【C-实践】一对一的远程通信(3.0)

使用tcp+epoll实现的远程通信。

2024-08-31 23:59:27 1799

原创 【C-实践】一对一的远程通信(2.0)

使用udp+select实现的远程通信。

2024-08-31 10:09:26 770

原创 【C-实践】一对一的网络通信(1.0)

使用tcp+select实现的远程通信。

2024-08-30 20:47:29 1150

原创 【C-查找算法】二分查找

排序后,只要范围大于1,就进入查找,目标值先跟数组中间值比。输出:找到就返回目标值的下标,找不到返回-1。输入:数组地址,数组长度,待查找的目标。时间复杂度:O(logn)

2024-08-26 14:31:02 181

原创 【C-排序算法】计数排序

核心思想:利用数组的随机访问特点,建立统计数组(下标为原数组的值,值为原数组值的次数)空间复杂度:O(n)【在原数组上合并时】,O(n * logn)【复制数组进行合并时】count数组的下标,就是原数组的元素(元素不是正数是,需要建立元素和下标的映射)利用原数组元素的取值范围,如 [0, M),建立一个统计数组count[M]count数组的值,就是原数组元素出现的次数。时间复杂度:O(n)【用在建表上的时间】通过遍历count数组,重建原数组。输入:数组地址,数组长度。输出:升序排列的数组。

2024-08-26 11:25:08 178

原创 【C-排序算法】归并排序

空间复杂度:O(n)【在原数组上合并时】,O(n * logn)【复制数组进行合并时】输入:数组地址,数组首元素下标,数组尾元素下标。时间复杂度:O(n * logn)将数据平均分成左右两份。最后有序合并左右两份。输出:升序排列的数组。

2024-08-26 09:38:42 497

原创 【C-排序算法】堆排序

时间复杂度:O(n * logn)【建堆需要O(n),调整堆需要O(n * logn)】具体排序步骤: 对N个数建立大根堆。核心思想:利用堆数据结构的特点。堆排序的步骤,n为数据规模。输入:数组地址,数组长度。空间复杂度:O(1)输出:升序排列的数组。

2024-08-26 09:11:25 402

原创 【C-排序算法】qsort库函数(非递归版的快速排序)

利用栈数据结构模拟递归调用,堆空间的大小远远大于栈空间,避免栈溢出。时间复杂度:平均和最好O (logn * n),最坏O (n^2)输入:数组地址,数组长度,数组元素的大小,比较函数指针。qsort.c (比较数组元素大小的函数)空间复杂度:O(logn),用来存分割器。print.c (打印数组元素的函数)输出:升序排列的数组。

2024-08-25 15:11:28 187

原创 【C-排序算法】快速排序(递归版)

快速排序是每次选择一个分割器(一般选当前范围的最后一个),比它大的放它右边,比它小的放它左边,再递归调用直到范围

2024-08-25 11:57:17 264

原创 【C-排序算法】希尔排序

多了一个外层循环,控制每次插入排序的增量,也称步长gap,gap一开始是长度除2,后面每次gap都除2递减,直到gap为1时。在内层循环 j 中涉及1的部分都替换成gap,同时 i 每次的起始插入点从 gap 开始。在数量少时,比快排和堆排快。但大量数据时,希尔排序还是比快速排序慢的,因为希尔编写较复杂。空间复杂度:O(1),是原地排序算法。时间复杂度:O(n^1.3)输入:数组地址,数组长度。是缩小增量的插入排序。输出:升序排列的数组。

2024-08-25 09:44:17 228

原创 【C-排序算法】插入排序

由于较高时间复杂度,不适合大规模数据的排序。实际开发中,常用更高效的排序算法(快排、堆排、归并、计数等)。如果有n个元素,分成两堆,A堆(手牌)是已经排序好的,B堆(牌堆)是没排序的。时间复杂度:最坏和平均的是O(n^2),最好的是O(n)空间复杂度:O(1),是原地排序算法。B堆的变化,从n - 1到0。将B堆的元素挨个有序插入A堆。输入:数组地址,数组长度。A堆的变化,从1到n。输出:升序排列的数组。

2024-08-24 16:52:44 248

原创 【C-排序算法】选择排序

由于较高时间复杂度,不适合大规模数据的排序。实际开发中,常用更高效的排序算法(快排、堆排、归并、计数等)。时间复杂度:最坏和平均的是O(n^2),最好的是O(n)空间复杂度:O(1),是原地排序算法。如果有n个元素,就找n-1次。输入:数组地址,数组长度。输出:升序排列的数组。

2024-08-24 16:19:24 146

原创 【C-排序算法】冒泡排序

由于较高时间复杂度,不适合大规模数据的排序。实际开发中,常用更高效的排序算法(快排、堆排、归并、计数等)。每次遍历完后最后一个元素就是最大值,长度减一,找剩余元素最大值,直到数量为2时。时间复杂度:最坏和平均的是O(n^2),最好的是O(n)

2024-08-24 15:51:53 177

原创 【C-数据结构】二叉树的插入(建树)

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。有两个子树,左子树(left subtree)和右子树(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。

2024-08-24 10:56:46 400

原创 【C-数据结构】链队

【代码】【C-数据结构】链队。

2024-08-23 14:19:47 306

原创 【C-数据结构】循环队列

容量(判空、判满、大小)

2024-08-23 11:45:55 538

原创 【C-数据结构】链栈(int)

如果栈非空,保存栈顶指针,修改栈顶,释放原栈顶节点。

2024-08-22 19:47:33 161

原创 【C-数据结构】顺序栈(int)

如果栈未满,插入栈顶后的位置。

2024-08-22 19:44:40 223

原创 【C-数据结构】单向链表,不带头节点(int)

按位查找(参数:链表地址,待查询位置)按位修改(参数:链表地址,待修改位置)按值删除(参数:链表地址,待删除值)按位删除(参数:链表地址,删除位置)按值查找(参数:链表地址,待查询值)按值修改(参数:链表地址,待修改值)有序插入(参数:链表地址,插入值)头插(参数:链表地址,插入值)尾插(参数:链表地址,插入值)初始化(参数:链表地址)判空(参数:链表地址)销毁(参数:链表地址)

2024-08-22 11:44:02 1041

原创 【C-数据结构】顺序表(int)

初始化(申请堆空间)

2024-08-21 16:47:31 158 1

原创 【C-项目】学生信息管理系统

简单分为4个部分一、读取配置文件(账户文件、学生信息文件)二、登录账户界面三、功能选择界面(普通权限、管理员权限)四、更新文件内容(退出时自动调用)

2024-08-21 15:15:07 1555

空空如也

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

TA关注的人

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