C
芝麻学编程
这个作者很懒,什么都没留下…
展开
-
C语言epoll实现线程池
/************************************************************************* > File Name: 5.thread_epoll.c > Author: > Mail: > Created Time: Fri 14 Aug 2020 10:59:44 AM CST ********************************************************************原创 2020-08-14 14:00:43 · 583 阅读 · 0 评论 -
如何使用exec()这一族函数。多进程:实现git commit
Execlp(父亲进程,需要等待孩子进程结束,然后为孩子进程收拾尸体。Pid_t wait(int *status);pid_t waitpid(pid_t pid, int *status, int options);@TOC进程退出int *status这个int *,使用的过程中是一个int型地址,父亲进程多了第一个参数pid可以是任何数字的pid < -1 //等待一个进程组id为pid绝对值的任何子进程退出pid = -1 // 等待任何一个子进程退出,wait()p原创 2020-08-01 15:07:43 · 159 阅读 · 0 评论 -
进程管理
命令:free:打印top:显示当前系统进程,最占内存的是什么情况;一般情况下就是直接使用就可以了。dstat :总的cpu使用率pstree: ps -ef (可以看到任务管理器)pstree -a pstree -n pstree -p pstree -upgrep :pgrep -o:起始的进程号;kill : 删除进程后续会讲kill进程单独怎么用;pkill :批量按照名字删除进程:ping baidu.com &ping haizei,com &原创 2020-08-01 14:29:21 · 98 阅读 · 0 评论 -
素数筛:
素数筛:进一步优化i * i <= maxj = iIf(prime[i] ) continue; int main(){ int prime[10000+5] = {0}; for (int i = 2; i * i<= 10000; i++){ for(int j = i ; i * j <= 10000; j++)//j 是从i而不是从2开始,因为重复(乘法表) { prime[i*j] = 1;//是不是不能用i*j而应该用 s原创 2020-07-29 17:49:39 · 82 阅读 · 0 评论 -
排序问题
稳定排序:插入排序、冒泡排序、归并排序原创 2020-07-05 15:57:48 · 204 阅读 · 0 评论 -
查找算法:二分查找(1,0)问题模型(0,1)问题模型、三分查找
查找是指在数据集合中寻找满足某种条件的数据元素的过程,用于查找的数据集合则成为查找表,查找表中的数据元素类型是一致的,并且有能够唯一标识出元素的关键字。如果从查找表找出了关键字等于某一个给定值的数据元素,则称为查找成功,否则称查找不成功。静态查找表:对查找表只进行(查找和检索)静态查找表建立之后,不能再执行插入或者是删除的操作,查找表页不再发生变化。对应的,如果对查找表还需要执行两种操作,那么这类查找表就是动态查找表。针对静态查找表,比如顺序查找、折半查找、分块查找等,动态查找表:(查找、检索、插入原创 2020-07-05 10:59:36 · 468 阅读 · 0 评论 -
图的存储方法的选择
稠密表和稀疏表的存储方式稀疏表邻接表来存储,如果用邻接矩阵存储,就存下来太多的0,浪费了空间稠密表邻接矩阵来存储,可以充分利用空间,邻接表来存储,这个操作会增加很高的负复杂度。有向图:邻接矩阵不一定对称有向图图中的边是单边的,如果用邻接矩阵来存储,邻接矩阵不一定是对称的。无向图:邻接矩阵一定是对称的因为无向图中的边是双边的查询两个顶点之间是否有边,邻接表比邻接矩阵更加的方便,如果用邻接表就要在链表中逐个查找。相比之下,邻接矩阵比邻接表更加滴方便。...原创 2020-07-04 11:12:13 · 182 阅读 · 0 评论 -
C语言工程开发的基础知识(makefile)
一、定义和声明#include "set.h"区别 于#include <set.cc>(.h)头文件和(.cc)源文件,分开放函数的定义和声明变量的函数定义和声明在test.c中有这样两个语句(1.#include "set.h")区别 于(2.#include <set.h>)在对test.c编译的过程中< >从系统目录开始寻找set.h,在gcc编译时候可以使用gcc -I./ (文件名)" "则是从当前文件夹中开始找set.h所有原创 2020-06-20 18:39:44 · 181 阅读 · 0 评论 -
函数的声明和定义的区别(一)
函数的声明和编译:声明是给出函数返回类型,传入参数类型,不必进行具体的固定流程void funcA(int);定义则是具体的#include<stdio.h>void funcA(int n) { if(n == 0) return ; printf("funcA = %d\n", n ); funcA(n - 1);}int main() { funcA(5); return 0;}像这样写,函数的定义过程就完成了没有什么问题,编译后输出如下fu原创 2020-06-17 11:18:11 · 2199 阅读 · 1 评论