
C
魄灠polan
互相学习
展开
-
C 变参数的使用方法
C 变参数的使用方法原始代码:输出:注释 1va_listva_startvsnprint()va_end以上是一个组合(宏定义),根据格式(fmt)解析后续的参数注释 2i是vsnprintf的返回值,i=输入的参数个数+逗号的个数注释 3必须包含头文件#include <stdarg.h>以上信息供参考...原创 2021-09-21 11:07:14 · 272 阅读 · 0 评论 -
浅析红黑树(RBTree)原理及实现(转)
我们在上一篇博客认识到了平衡二叉树(AVLTree),了解到AVL树的性质,其实平衡二叉树最大的作用就是查找,AVL树的查找、插入和删除在平均和最坏情况下都是O(logn)。AVL树的效率就是高在这个地方。如果在AVL树中插入或删除节点后,使得高度之差大于1。此时,AVL树的平衡状态就被破坏,它就不再是一棵二叉树;为了让它重新维持在一个平衡状态,就需要对其进行旋转处理, 那么创建一颗平衡二叉树的成本其实不小. 这个时候就有人开始思考,并且提出了红黑树的理论,那么红黑树到底比AVL树好在哪里?红黑树与AV转载 2021-01-26 18:55:27 · 187 阅读 · 0 评论 -
printf中分别代表的输出类型
printf中分别代表的输出类型: %a(%A):浮点数、十六进制数字和p-(P-)记数法(C99)%c:字符%d:有符号十进制整数%f:浮点数(包括float和doulbe)%e(%E):浮点数指数输出[e-(E-)记数法]%g(%G):浮点数不显无意义的零"0"%i:有符号十进制整数(与%d相同)%u:无符号十进制整数%o:八进制整数 e.g. 0123...原创 2021-01-26 18:54:48 · 1869 阅读 · 0 评论 -
server client通过unix socket通讯(local)
Makefileall:client serverclient:process.o client.o gcc -o client process.o client.oserver:process.o server.o gcc -o server process.o server.oprocess.o: gcc -c process.c -o process.oclean: rm -f client server *.oclie原创 2021-01-26 18:52:09 · 1123 阅读 · 0 评论 -
编程算法(C实现) 附代码
1. 快速排序算法https://blog.youkuaiyun.com/sunlanchang/article/details/604788142. 堆排序算法(不稳定算法)3.归并排序算法4. 二分查找算法5.DFS(深度优先搜索)6.BFS(广度优先搜索)7.Dijkstra算法8.BFPRT(线性查找算法)9.动态规划算法10.朴素贝叶斯分类算法...原创 2020-06-02 19:15:00 · 393 阅读 · 0 评论 -
字符串匹配算法:BMH算法 C实现
#include <stdio.h>#include <stdlib.h>#define MAXCHAR 256/* * 把坏子串的下一跳找出来 * */void pre_process(char *patt, int m, int bm_bc[]){ int k = 0; for ( k = 0; k < MAXCHAR; k++ ){ bm_bc[k] = m; printf("bm_bc[%d]=%d \n", k, bm_bc[k]); }.原创 2020-12-26 11:09:49 · 499 阅读 · 0 评论 -
linux 内核 - ioctl 函数详解
转载:https://blog.youkuaiyun.com/qq_19923217/article/details/82698787作者:岁月斑驳71. 概念ioctl 是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些需要细分的情境下,如果需要扩展新的功能,通常以增设 ioctl() 命令的方式实现。在文件 I/O 中,ioctl 扮演着重要角色,本文将以驱动开发为侧重点,从用户空间到内核空间纵向分析 ioctl 函数。2. 用户空间 ioctl.转载 2020-09-04 15:33:42 · 772 阅读 · 0 评论 -
Shell && C 易混淆语法
#记录工作中Shell语法与linux易混淆的语法Linux Shell:1. 变量++ a=$(($a+1))2. switch语句case a in 1) echo "a=1"; ;; 2) echo "a=2" ;; *) echo "a=$a" ...原创 2020-03-13 14:00:02 · 278 阅读 · 0 评论 -
linux json c
1. json_object_from_file(char* file_name) 从file_name 文件中以json格式读取数据,用例如下:struct json_object *obj_file_info;obj_file_info = json_object_from_file(/tmp/test.json);printf("test.json: %s", jso...原创 2020-03-12 15:01:11 · 1002 阅读 · 0 评论 -
分治法找最大值(C语言)
根据分治思路找最大值:#include <stdio.h>int max(int a,int b){ if (a >= b) return a; else return b;}int find_max(int i,int j,int num[]){ int vmax; int vmax1,vmax2; int mid; if ( i==j ){ vm...原创 2018-06-02 14:20:24 · 5963 阅读 · 0 评论 -
汉诺塔递归与非递归算法
1. 基本递归算法:原文:https://blog.youkuaiyun.com/hehe5229/article/details/60874167#include<stdio.h> #include<stdlib.h> int count=0; void move(char getone, char putone) { count++; printf("%c...原创 2018-06-02 13:22:28 · 3516 阅读 · 1 评论 -
快速排序
简单的一个快速排序,未优化。#include <stdio.h>/* * 根据a[m],把大于a[m]的值放在后面,把小于a[m]的值放在前面 * 例如:输入 2 3 1 4 5 1 * 1. 输出 2 1 1 4 5 3 * 2. 最终输出 1 1 2 4 5 3 * 那么这个就确定了数组中 a[m]数值排在第m。上述中2在排序后就是第3大的数字。 *...原创 2018-06-11 22:27:23 · 171 阅读 · 0 评论