各种常用的排序算法实现对数组的排序——整理总结(代码实现)

冒泡排序、插入排序、折半排序(二分插入排序)、快速排序、选择排序、归并排序、希尔排序、堆排序

2017-07-13 11:14:09

阅读数 364

评论数 0

链表

链表(画图写相应的代码) (初始化、显示、插入(头插、中间插、尾插)、删除、逆序) 定义结点类型、定义头指针、初始化链表、创建链表 1.      不带表头的单链表 //初始化 void init_link(Link*head) {     *head = NULL; } //显...

2016-07-27 16:34:40

阅读数 284

评论数 0

指针与数组(二)——字符串认知

字符串就是首字符的地址 字符串 字符串比较函数strcmp、strncmp 字符串拷贝函数strcpy、strncpy 字符串函数 字符串长度函数strlen ...

2016-07-18 23:36:28

阅读数 341

评论数 0

通用轻量级二进制格式协议解析器

在通信协议中,经常碰到使用私有协议的场景,报文内容是肉眼无法直接看明白的二进制格式。由于协议的私有性质,即使大名鼎鼎的 Wireshark,要解析其内容,也无能为力。 面对这种情况,开发人员通常有两个办法:第一,对照报文内容和协议规范进行人工分析(假设内容没有经过加密、压缩);第二,编程实现协议...

2019-01-10 14:52:44

阅读数 106

评论数 0

一致性hash之负载均衡

目前现在的负载均衡主要采用取模的方式,如果有一个机器故障了,或者我想再添加一台机器怎么处理?现查到了一致性hash算法。 自己看了一下资料:先说一下大概思想,一致性Hash主要是在分布式算法中用的比较多。 1.我们现在常用的是线性hash,这样万一有一个机器坏掉了,就容易造成数据丢失。如果换成...

2019-01-03 15:46:49

阅读数 88

评论数 0

分布式算法(一致性Hash算法)

一、分布式算法     在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算...

2018-12-27 15:44:55

阅读数 124

评论数 0

工作半年所思所感

 很久没有写博客了,关于技术相关,最高水平似乎还停留在上学那会,但是在互联网技术发展如此迅速的情况下,这简直就是被时代淘汰的预兆。然而这篇博文也不是关于技术的,仅仅是个人经历的感受与心得。 2018年,真的是一个人生很重要的转折点,这是我迈向社会的第一年。大学四年的努力,我成功进入了一直想进入的...

2018-11-15 17:01:53

阅读数 268

评论数 2

UML类图关系(C++)

♀ 双向关联(Association)CAssociation1和CAssociation2可以互相调用对方的公共成员函数和成员变量。代码触析:[cpp] view plain copyclass CAssociation1  {  private:      CAssociation2* m_p...

2018-03-12 14:40:28

阅读数 550

评论数 0

C语言实现面向对象的思想(实现封装、继承和多态)

由于C语言是面向过程的语言,在处理比较大的项目时,结构上会显得有些松散。管理起来不免力不从心。 其实在使用C语言写程序的过程中,也可以引入一些面象对象的思想。下面我们主要来谈谈如何用C语言把这些思想表达出来: 1. 封装 这个最简单了,C语言中虽然没有类,但有struct。这可是个好东西。我...

2017-09-17 22:25:55

阅读数 397

评论数 0

c++简单线程池实现

线程池,简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态,当有新的任务进来,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用,当线程池中的线程都在处理任务时,就没有空闲线程供使用,此时,若有新的任务产生,只能等待...

2017-09-13 21:36:27

阅读数 402

评论数 0

C++继承中的成员访问控制

由基类到派生类的过程中,在派生类里如何访问基类成员,以及派生类对象如何访问基类成员,是根据派生类在从基类派生时是以什么方式进行的派生:public、protect或者private。下面说一下在这三种派生方式下成员函数和成员变量的访问和修改权限。派生类是指直接派生类! 【代码1】 ...

2017-09-10 14:34:57

阅读数 325

评论数 0

浅谈如何提高服务器并发处理能力

目录   (一)什么是服务器并发处理能力 (二)有什么方法衡量服务器并发处理能力 1.吞吐率 2.压力测试 (三)怎么提高服务器的并发处理能力 1,提高CPU并发计算能力 (1)多进程&多线程 (2)减少进程切换,使用线程,考虑进程绑定CPU ...

2017-08-29 21:13:33

阅读数 3116

评论数 0

多进程与多线程

关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。   经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下...

2017-08-16 13:45:43

阅读数 294

评论数 0

LINUX内核面试题摘选

LINUX内核面试题摘选 1) Linux中主要有哪几种内核锁? 答:Linux的同步机制从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过渡; 伴随着从非抢占内核到抢占内...

2017-08-16 10:47:00

阅读数 614

评论数 0

数转化为二叉树

普通树转换为二叉树的方法是: ①树中所有相同双亲结点的兄弟节点之间加一条连线 ②对树中不是双亲结点第一个孩子的结点,只保留新添加的该结点与左兄弟结点之间的连线,删去该结点与双亲结点之间的连线 ③整理所有保留和添加的的连线,使每个结点的第一个孩子结点连线位于左孩子指针位置,使每个结点的右兄弟结...

2017-08-16 10:01:22

阅读数 756

评论数 0

有关析构函数和构造函数的几点说明

有关析构函数和构造函数的几点说明: 构造函数和析构函数都不能被继承(构造函数和析构函数是用来处理对象的创建和析构的,它们只知道对在它们的特殊层次的对象做什么。所以,在整个层次中的所有的构造函数和析构函数都必须被调用而不能被继承。)构造函数可以重载,析构函数不可以重载(构造函数可以有参数,...

2017-08-16 09:56:22

阅读数 332

评论数 0

实现生产组和消费者的机制,利用共享内存实现文件的打开和读写操作,PV操作。

/*sem_com.h*/ #include #include #include #include #include union semun { int val; struct semid_ds *buf; unsigned short *array; }; /*信号...

2017-08-15 15:32:34

阅读数 621

评论数 0

采用管道函数创建有名管道,使用select函数替代使用poll函数实验多路复用

创建两个有名管道,获取3个文件描述符(2个管道,1个标准输入),然后初始化读文件描述符,select监视文件描述符 的文件读写,管道1输出到屏幕上,管道2输出到屏幕上,标准输入‘Q’来进行判读是否退出。 /*pipe_select.c*/ #include #include #incl...

2017-08-15 15:23:51

阅读数 525

评论数 0

文件锁以及多路复用方式解决多个用户对一个文件的操作

一、文件锁用于多个用户共同使用或操作同一个文件。有读锁的时候可以再加读锁,不能再加写锁。有写锁的时候,不能加任何锁,加读锁时,该描述符必须是读打开,加写锁时,该描述符必须是写打开,且只在进程间有用。   使用flock(锁定文件或解除锁定)函数   头文件 #include   定义函数 ...

2017-08-10 20:11:12

阅读数 519

评论数 0

内存分配、野指针、指针、数组相关

内存分配方式有哪些?什么是内存泄漏?什么是野指针?如何避免野指针?什么时候将引用作为返回值?引用与指针的区别? 数组与指针的区别?函数指针与指针函数的区别?数组指针与指针数组的区别?指针常量与常量指针的区别?函数模板与模板函数的区别? 类模板与模板类的区别?重载overload、覆盖overwri...

2017-08-09 15:31:38

阅读数 449

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭