- 博客(12)
- 收藏
- 关注
原创 malloc函数底层原理(4)
在freelist中找到内存大小合适的内存块,并有多种查找策略,如首次适配(first fit)、最佳适配(best fit)、最差适配(worst fit)。若找不到合适大小的内存块,再次向操作系统申请内存,申请大小小于128kb使用break,申请大小大于128kb使用mmap。:若找到的内存块远大于所需要的大小,要进行内存块切割分半,一半用于满足当前需要,另一部保留在freelist中为以后使用。:malloc返回内存块地址,但此时的内存块可能未初始化,需要在使用前进行适当初始化操作。
2025-01-11 23:53:54
282
原创 IO多路复用模型Select
IO多路复用模型是一种同步IO模型,其原理在于使用一个线程完成在集合内的多个文件句柄的监视,若在集合中发现句柄,则进行读写操作,反之这一直处于阻塞状态,直至在集合中发现句柄。
2024-08-11 19:28:43
576
原创 TCP文件传输(客户端的文件上传)
TCP传输的流程、TCP传输的流程在应用程序当中调用Winsock API 函数,首先通过函数完成对Winsock服务的初始化,因此需要调用函数,使用Socket的程序在使用Socket之前必须调用函数。2.socket()套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。
2024-08-08 00:25:43
1293
原创 堆排序算法
堆的含义:堆的本质是二叉树;堆排序就是将给定的数组构建除二叉树。对该数组进行调整。对调整后数组进行排序、调整。相关概念:与排序二叉树的区别、满二叉树、完全二叉树
2024-06-25 22:15:35
1177
原创 桶排序算法
什么是桶排序?桶排序就是把数据放到一个桶(容器)中,在这个桶中进行一系列的排序操作,再将桶中的数据传回原处的过程叫做桶排序。例如:把数组的内容放到一个桶中,在桶中进行排序,类似于哈希查找的拉链法,可参考哈希拉链法的操作处理。
2024-06-24 15:36:10
749
原创 归并排序算法
例如将一个数组分成多块组成,通过递归完成对每一部分的排序,判断条件:Start>=End时即分完一部分,进行return跳出操作。此时对0,1位置进行排序,需要临时开辟一个空间即一个长度为(end-start+1)的数组,利用该数组对原数组的分块进行排序,类似于快速排序,但有别与快排,归并排序使用了分治(即分开治理)的思想。Start初始为0,End初始为9,mid为(0+9)/2。Step1:通过递归进行拆分;以一个长度为10的数组为例。Step2:进行归并排序;直至归并排序全部排序完毕。
2024-06-23 14:59:24
338
原创 哈希查找(按个位取余的方式)
按个位取余发现有两个或多个数重复,如:会发现15,25,55,重叠了,对此进行冲突处理,冲突处理有三种:以上图为例,将和25按个位取余后重复的数填到25后面的位置,如果相邻的位置满了,在向后填。再次使用哈希法,直至填充完毕。以上图为例,像拉链一样将重叠数据以拉链形式挂在下面,示例代码
2024-06-18 15:07:04
699
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人