摘要:
创建一个socket,使用函数socket() socket(套接字)实质上提供了进程通信的端点,进程通信之前,双方首先必须建立各自的一个端点,否则没有办法通信。通过socket将IP地址和端口绑定之后,客户端就可以和服务器通信了 #include<sys/socket.h> int socket( 阅读全文
摘要:
管道通信 管道是单向的、先进先出的,由队列来实现,它把一个进程的输出和另一个进程的输入连接在一起 一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据 管道包括无名管道和有名管道。前者用于父进程和子进程间的通信,后者可用于运行于同一系统的任意两个进程间的通信。 无名管道 阅读全文
摘要:
进程是一个具有一定独立功能的程序的一次运行活动 三种状态 进程id(PID):标识进程的唯一数字 父进程的ID:PPID 进程互斥:指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止 进程同步:一组并发进程按一定的顺序 阅读全文
摘要:
掌握数据结构和算法,尤其是链表,面试编程题经常考 下面是用尾插法创建链表 输出结果 头插法函数如下 输出结果如图 阅读全文
摘要:
插入排序的原理是每插入一个数都要将它和之前的已经完成排序的序列进行重新排序,也就是要找到新插入的数对应原序列中的位置。那么也就是说,每次插入一个数都要对原来排序好的那部分序列进行重新的排序,时间复杂度同样为O(n²)。 这种算法是稳定的排序方法。 函数不理解可以看下我写的解析 阅读全文
摘要:
本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 其 阅读全文
摘要:
2、选择排序(Selection Sort) 选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 阅读全文
摘要:
标准冒泡排序 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include<malloc.h>#include <string.h> 优化一假设我们现在排序ar[]={1,2,3,4,5,6,7,8,10,9}这组数据,按照上面的排序方式,第一趟 阅读全文
摘要:
一、 Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源 阅读全文
摘要:
今天来学习一下c语言类型修饰符及内存分布 1、auto int a; 默认在内存 2、register int a; 限制变量定义在寄存器上的修饰符 编译器会尽量安排CPU的寄存器去存放这个a,如果寄存器不足,a还是放在内存中 取地址符号&对a不起作用 3、static 应用场景: 1、函数内的变量 阅读全文