- 博客(44)
- 收藏
- 关注
原创 二分查找算法的实现
二分查找又称折半查找,时间复杂度为log2n,效率比较高。 算法思想:二分查找算法是对于一个有序序列而言的,假设这个序列是升序排列的,那么在查找元素时,首先与序列中的中间值进行比较,如果大于中间值,就从中间值的右边找,如果小于中间值,就从中间值的左边找,直到扎到该元素,或者所查找的序列为空时。代码示例如下:#include <stdio.h>#include <assert.h>int Searc
2017-09-16 20:49:42
2004
原创 排序算法(四)快速排序算法
算法思想: 选择第一个数作为基准,从后往前找比基准小的数字往前移放到基准位置;再从前往后找比基准大的数字往后挪放到基准位置,以此循环,当low与high相碰时,便通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再对这两部分数据分别进行选择排序。时间复杂度:O(nlog2(n)) 空间复杂度:O(log2(n)) 稳定性:不稳定特点:快速排
2017-09-13 18:31:57
327
原创 基于UDP协议的Socket网络编程
基于UDP协议的Socket网络编程流程:采用 UDP 套接字方式实现C/S的通信程序由客户端和服务器端两部分组成。
2017-08-18 18:53:54
1363
翻译 TCP协议与UDP协议以及两者之间的区别
TCP协议与UDP协议:TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议。UDP协议互端。
2017-08-18 18:41:11
375
原创 Linux下TCP网络编程流程
常见的两种模型:C/S模型:(客户端/服务器端)和ptp(点对点)模型。下面为TCP网络流程编程两台主机之间数据传送的具体代码示例。
2017-08-17 22:09:48
880
原创 字符串函数之Strtok()函数
一、Strtok()函数 (1)该函数包含在”string.h”的头文件里 (2)函数原型为char* strtok(char* str,const chat* delimiters); (3)函数功能:切割字符串,目的是将str分割成一个个子串。 (4)参数: A、第一个参数str:在第一次被调用的时间,str是传入需要被切割字符串的首地址;在后面调用的时候传入NULL; B、第二个参
2017-08-11 23:26:12
290
原创 线程中fork函数的使用
线程中fork函数的是使用(线程与进程的结合)线程中调用fork函数创建子进程,子进程仅仅执行调用fork函数的这个线程,其他的线程不会被调用。
2017-08-11 22:10:12
2124
原创 线程安全与可重入函数strtok_r()
线程安全与可重入函数strtok_r,以及对strtok_r函数的具体使用进行实例,还有线程安全的符合情况。
2017-08-11 21:12:31
1229
原创 线程同步的方法—互斥锁、信号量和条件变量
1、同步:当一个进程/线程在执行某个请求的时候,请求的信息需要等一段时间才能够返回,那么该进程/线程就一直等待,直到请求的信息返回。2、异步:当一个进程/线程在执行某个请求的时候,不必等待请求信息的返回,直接执行接下来的操作。不管其他进程/线程的状态。
2017-08-10 12:45:37
468
原创 C语言基础之结构体
在C语言中可以使用结构体定义用户自己的数据类型,类似于数组,但是结构体中的成员可以是不同的数据类型。 struct结构体类型名 变量名
2017-07-30 15:31:58
319
原创 C语言之动态内存分配
对内存的动态分配是通过系统提供的库函数来实现的,主要有malloc、calloc、free、realloc这4个函数。 动态内存分配区域,存放一些临时用的数据,存放在堆区中。
2017-07-30 15:04:15
426
原创 C语言基础之循环
1、while循环1 while(循环控制表达式) { 循环体语句块; } S1:计算循环控制表达式,若为真则执行循环体语句块,否则退出循环; S2:执行循环体语句块后,执行S1。 (1)如果循环控制表达式恒为真,则构成无限循环;//break,return (2)while循环的循环体可能一次都不执行。 2、do-while循环 do{ 循环体语句块 }while(循环控制
2017-07-29 19:45:26
411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人