- 博客(10)
- 收藏
- 关注
转载 DHCP协议工作过程详解
DHCP协议工作过程由于在IP地址动态获取过程中采用广播方式发送报文,因此要求DHCP客户端和服务器位于同一个网段内。如果DHCP客户端和DHCP服务器位于不同的网段,则需要通过DHCP中继来中继转发DHCP报文。通过DHCP中继完成动态配置的过程中,客户端与服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面仅以DHCP客户端与DHCP服务器在同一网段的情况为例,说明DHCP协议的工作过程。为了动态获取并使用一个合法的IP地址,需要经历以下几个阶段:(1) 发现阶段:即DHCP客户端寻找
2020-08-18 23:21:04 2618
原创 快速排序(C语言)
快速排序快速排序的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。优化前的代码://简单选择排序#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define MAXSIZE 10typedef struct{ int r[MAXSIZE]; int leng
2020-08-11 10:41:21 226
原创 C#调用YOLOv3算法dll动态链接库(YOLO算法落地)
C#调用YOLOv3算法dll动态链接库前段时间在搞一个软件,目标是实现细胞计数的功能,当时我细胞计数的算法用到的是YOLOv3目标检测算法,所以就涉及到怎么实现模型落地的问题。当时有个同学在帮老师做项目,他比较懂,我于是向他寻求帮助,但是…可能涉及到了商业机密吧,于是我就自己研究。我看了很多博客,感觉讲的也不是很到位,或者说没有给出一些干货,今天我来给大家带点干货,当然我是用**C#**调用的YOLOv3动态链接库,如果有需要的小伙伴就拿去吧。yolov3编译成动态库大家按照这个链接去GitHub
2020-08-01 16:26:18 6693 29
原创 归并排序(C语言)
归并排序归并排序的时间复杂度为O(nlogn),空间复杂度为O(n),大概流程如下图:代码如下:#include<stdio.h> //归并排序void MSort(int a[], int b[], int start, int end){ if(start>=end) return; int start1 = start, end1 = ((end-start)>>1) + start; int start2 = ((end-start)>&
2020-07-29 08:41:38 416
原创 二叉排序树的增,删,和查找操作(C语言)
二叉排序查找树来自《大话数据结构》中的解释:二叉排序树(Binary Sort Tree),又称二叉查找树,它或者是一个树,或者具有以下性质的二叉树:若它的左子树不空,则左子树上所有节点的值均小于它根节点的值;若它的右子树不空,则右子树上所有节点的值均大于它根节点的值;它的左、右二叉树也分别为二叉排序树。常用的二叉排序树抽象数据结构类型有:查找,插入,删除,遍历等操作。首先来构造一棵树:typedef struct BiNode{ int data; //节点的数据域. struct
2020-07-23 09:34:14 1475 2
原创 数据结构中的循环队列(C语言)
数据结构中的循环队列队列中的数据先进先出,我们来看一张图:初始状态下,队列的front=rear,这很好理解,输入一项数据,rear向后移动一位,输出一项数据,front向后移动一位。当遇到红色表示的情况时怎么办呢,再加入一项数据的话,rear怎么回到i=1的位置呢?请注意图中的"i%6"这个标记,队列循环的关键就是这个"i%6",当rear=6时,那么1=(rear+1)%6,想一下是这样吗?当然我们可以在front,rear每次后移时用**(front+1)%6或(rear+1)%6**表示。循
2020-07-19 20:43:00 562
原创 栈的链式存储结构(C语言)
栈(数据先进后出)首先来看一下栈常用的的抽象数据类型:栈的初始化入栈出栈栈的遍历栈的清空下面来看一下栈的结构体的创建:# include <stdio.h># include <malloc.h># include <stdlib.h>typedef struct Node{ int data; struct Node * pNext;}NODE, * PNODE;typedef struct Stack{ PNODE pTop
2020-07-19 10:48:33 275
原创 单链表的增删操作(C语言)
单链表增加节点的操作我写的代码其实是从中间插入一个节点,如果明白这个知识点的话,我想头插法和尾插法也应该会明白。话不多说先来张图:大家想一下怎样才能从p和p->pNext中间插入一个节点呢。方法如下:1、先将s的指针域指向指向p->pNext;2、将p的指针域指向s。两步就可以了,其实也就是先后顺序问题。试想一下如果先进行2操作,p指向了s,但是在p之后的节点找不到了,这样就导致数据丢失,要想明白这个顺序。增加节点的代码如下://创建节点的结构体struct Node{ int
2020-07-17 20:41:44 304 2
原创 链表的创建与遍历(C语言)
用C语言完成链表的创建今天开始把我以前所学的数据结构与算法这本书整理一遍,第一次写博客请大家多多指教。先从链表的创建和链表的遍历开始吧!我对数组和链表的理解:数组声明时需要连续的储存单元,这样很不灵活,声明时内存过大容易浪费,过小容易溢出;链表相对来说灵活。只需声明单个节点,然后用指针(也就是地址)将它们串联起来,所以链表的储存单元不一定是连续的。这种操作可以将存储单元的使用合理化。链表结构体的声明首先链表包括数据域和指针域,链表的创建如下:struct Node{ int data; /
2020-07-17 10:54:28 3663 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人