- 博客(9)
- 收藏
- 关注
原创 TCP协议的客户端和服务器端通信
客户端:向服务器发送连接请求给服务器发送数据,并且读取服务器端回写的数据。tcp协议特点:面向连接 可靠的 流式服务 应答确认超时重传客户端和服务器端的通信通过套接字socket实现,套接字是两台主机之间通信的端点。客户端和服务器端的通信由以下函数实现:服务器端:socket创建套接字bind() 绑定 服务端用于将把用于通信的地址和端口绑定到 [socket]上listen() 监听 设置最大的可连接的线路的数量accept ()是一个阻塞函数(注:执行一该函数,则连接一次)send recv()收发消息
2022-06-05 17:33:37
4941
3
原创 字符串匹配BF(即暴力求解法)
给定字符串:abcd真字串:"","a","b","c","d","ab","bc""cd""abc""bcd"子串:"","a","b","c","d","ab","bc""cd""abc" "bcd",“abcd"1.字符串匹配之BF思路:定义i指向主串,j指向子串,如果i指向的字符和j指向的字符相等,则i++,j++,如果不相等,j回退到开始位置,i回退到这一趟开始位置的下一个位置,接着去匹配。如图给定主串ababcabcdabcde 子串abcd退出...
2022-05-25 22:25:44
308
原创 八大排序详解(五):快速排序(递归非递归及其优化)
1.定义 每一趟排序将第一个值看做基准值,然后从右向左找一个比基准值小的值,放到左边,然后再从左向右找一个比基准值大的,放到右边,直到left和right相遇(此时会发现,以基准值为分界线,将所有数据分成了两部分,左边部分都小于基准值,右半部分都大于基准值)、 对于快速排序来说 数据越乱排序越快。2.原则原始数据为9 8 23 90 21 85 1 58 91 2 第一趟的基准值为9 按照从右往左找 再从左往右找 第一次排序得到的结果是2 8 1 9 21 85...
2022-05-18 19:16:03
388
原创 八大排序详解(四):选择排序和基数排序(超详细)
一.选择排序1.定义选择排序是每一次从待排列序列中找到最小值和待排序序列的第一个值 进行交换。2.规则走一趟,找到最小值的下标然后和待排序序列第一个值的下标,然后通过这两个小标进行交换值。如图所示:原始数据是12 47 30 21 85 916个数据只需要进行5趟排序3.代码void Select_Sort(int* arr, int len){ for (int i = 0; i < len - 1; i++)//控制的趟数 { int min = i
2022-05-18 17:42:29
420
原创 八大排序详解(三):堆排序(超详细)
1.堆排序:堆排序是按照堆的数据结构来进行排序 并且这种数据结构称为完全二叉树。大顶堆:父节点值大于孩子节点 升序排列用大顶堆小顶堆:父节点值小于孩子节点 降序排列用小顶堆2.堆排序原则:将数组先臆想成二叉树,然后调整为大顶堆,接着向根节点的值和尾结点进行交换,交换完毕将当前根节点排除我们整个排序过程,直到二叉树只剩下一个节点,具体原则流程见下图:3.堆排序代码实现补充:推子节点和父节点关系 如果父节点下标是i 则子节点下标是2i+1子节点下标是i ...
2022-05-13 17:03:32
611
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人