- 博客(13)
- 收藏
- 关注
原创 快速排序算法
快速排序快速排序的基本思想:通过一趟将带排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对着两部分记录继续进行排序,一达到整个序列有序列的目的。因为快速排序也是运用了递归的原理,因此我在外封装了一个函数,来实现调用void _quick_sort(int* arr,size_t left,size_t right){ //递归跳出的条件当left &...
2019-08-24 14:34:11
150
原创 C与C++的不同点
C与C++的不同点首先声明一下我这里的不同点不是那些C有C++没有或者C++有而C没有的,而是一些都有的内容的不同的存在意义1.内存管理new/delete 是C++中具备申请释放内存功能的运算符,功能相当于C中的malloc和free。new类型:会自动计算类型所需要字节数,然后从堆分配对应字节数的内存,并返回内存的首地址(具备类型)。delete类型:delete 指针:会自动释放堆...
2019-08-16 18:48:17
194
原创 字符串系列函数
字符串处理函数1.strlensize_t strlen(const char *s);功能:计算字符串长度(不算结束符)s:所求字符串返回值:字符串长度2.strcmpint strcmp(const char *s1,const char *s2);功能:比较两个字符串返回值: 若s1 > s2 ,返回一个正数 若s1 < s2 , 返回一个负数...
2019-08-13 15:56:33
127
原创 线程
线程的基本概念一.线程的基本概念1.线程就是进程中的执行路线,既进程内部的控制序列,或者说是进程的子任务2.线程就是轻量级的,没有自己独立的内存资源,使用的是进程的代码段、数据段、bss段、堆(注意没栈)、环境变量表、命令行参数、文件描述符、信号处理函数、工作目录、用户ID、组ID等资源。3.线程拥有自己独立的栈,也就是有自己的独立的局部变量4.一个线程中可以同时拥有多个线程,即同时被系...
2019-08-11 17:19:18
184
原创 查找算法
查找算法之顺序查找int order_find(int* arr,size_t len,int key){ if(len == 0) return -1; for(int i = 0;i < len;i++) { if(arr[i] == key) return i; } return -1;}顺序查找是最简单的一种查找算法,简单来说就是通过遍历来找到相同的值,...
2019-08-09 12:05:16
112
原创 排序算法之插入算法
插入排序插入排序,从名字中我们就可以看出了这是一个插入的排序,而且差入排序,也比较适用于在有序的基础上插入若干个元素后进行重新排序void insert_sort(int* arr,size_t len){ for(int i=1;i<len;i++) { int t = arr[i],k = i; for(int j = i-1;j>=0 && ar...
2019-08-04 18:44:38
193
原创 排序算法之冒泡排序
冒泡排序void bubble_sort(int* arr,size_t len){ for(int i=len-1;i>0;i--) { //标志位,标志是否存在交换 bool flag = true; for(int j=0;j<i;j++) { if(arr[j] >arr[j+1]) { //交换函数自己定义的,若前一个数大于后...
2019-08-04 17:40:17
274
原创 C语言文件读写
文件读写的两种方式文件读写的方式在我的认知中大致分为两种方式,第一种是用文件指针来进行文件的读写操作,第二种就是文件描述符来进行文件的读写操作以文件指针进行操作FILE *fopen(const char *path,const char *mode);功能:打开或者创建文件path:路径mode:文件打开或创建的的权限返回值:文件指针int fprintf(FILE *ste...
2019-08-04 14:36:23
344
原创 unix/linux操作系统文件管理
文件管理一.文件缓冲区1 硬盘上一般都有一些缓冲区以此来提高数据的写入效率,操作系统写入数据其实只是写入缓冲区,知道缓冲区满才排队写入到磁盘中。2 这种操作降低了写入的次数,但是提高了数据写入的延时,导致缓冲区的数据与磁盘的内容不同步void sync(void);//功能:把所有缓冲区中的数据全部同步到磁盘//注意:只是发布将数据同步到磁盘的命令,并不等待执行完毕才返回,而是命令...
2019-07-27 11:47:52
461
原创 C语言预处理指令
预处理指令在C语言中以#开头的语句都叫做预处理指令,因为这些不是标注你的C代码,不能被编译器直接编译,需要一段程序把它翻译成标准的C代码,负责翻译在程序叫做预处理器,翻译的过程叫预处理。gcc -E code.c //把预处理的结果显示在终端上gcc -E code.c -o code.i//把预处理的结果存储到文件中-o 为执行结果重命名1.文件包含#include<>...
2019-07-27 10:31:20
280
原创 Unix和Linux操作系统
Unix操作系统历史简介1971年在美国的贝尔实验室,丹尼斯里奇和肯汤普逊,使用C语言发明了这款操作系统,该系统的特点是多多用户、多任务,支持多种处理器架构,高安全性、高可靠性、高稳定性,既可以构建大型业务系统的商用服务器,也可以构建面向移动端、手持设备等相关的嵌入式应用 三大衍生版本system V:银行或电信公司在是使用的服务器系统berkley:Macos IOS带界面...
2019-07-27 09:39:19
341
原创 关于二叉树后序遍历和递归
关于二叉树后序遍历和递归 一些基础递归题目来源牛客网→剑指offer 跳台阶:一只青蛙可以一次性跳1个台阶也可以一次性跳两个问青蛙一次性跳n个台阶有几种跳法。 解题思路:首先如果我们按照正常的思路想一只青蛙跳一个台阶的跳法肯定只有1种,跳两个台阶的方法肯定只有2种,拿我们跳三个台阶的方法我们是否可以想成先跳一个台阶在跳剩余两个台阶和先跳了两个台阶在跳剩余一个台阶这两种方式,所以依...
2019-07-17 16:11:46
200
1
原创 链式二叉树
链式二叉树定义和函数申明#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <string.h>#include <math.h>#define TYPE int typedef struct Node{ ...
2019-07-13 13:22:43
265
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人