自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Jenkins持续集成测试环境搭建

Jenkins行持续集成测试

2024-07-11 16:04:26 671

原创 Makefile文件编写(从0开始)

Makefile文件编写,依赖.so动态库,多文件编写

2023-05-25 19:39:44 624

原创 C/C++获取时间戳

时间戳

2023-04-25 15:28:55 7003

原创 安装python库

安装python库

2023-03-09 14:55:35 177

原创 归并排序递归、非递归

归并排序就是将原本有序的几个序列合并成一个完整有序序列,有二路归并(两个合成一个)还有多路归并。用这种思路来对一个序列进行排序则需要将这一个序列分为多个子序列进行重新合并。从子序列只有一个数直到最后二路归并完整个序列。二路归并形态上像一个倒立的二叉树,二叉树的第h层最多有2的h-1次方个结点,若树高为h,则应满足n<=2的h-1次方。每一趟归并的时间复杂度为O(n),算法的时间复杂度为O(nlog2(n))。由于需要开辟临时数组,所以空间复杂度为O(n)。算法稳定性:稳定。归并排序的递归

2021-10-09 21:34:20 164

原创 排序算法——快速排序

快速排序算法就是不断的取基准值,然后根据基准值将序列分成大于基准值的和小于基准值的两部分。划分的方法有两种:第一种是双向划分,从两端向中间合拢具体代码:int Partition(vector<int>& arr, int low, int high){ int tmp = arr[low]; while (low < high) { while (low < high&&tmp<=arr[high]) { high--;

2021-10-09 17:14:55 452

原创 排序算法——希尔排序

先将序列分成若干个子表,然后对各个子表进行插入排序。子表中的元素为d个,直到d为1停止分割。类似这样产生子表,使各个子表有序。空间复杂度为O(1);希尔排序的时间复杂度最坏是O(n²),n在某个范围内可达O(n^1.3);算法稳定性:不稳定代码实现:void ShellSort(vector<int> &arr){ for (int d = arr.size() / 2; d > 1; d /= 2) { for (int i = d; i <arr

2021-10-09 16:05:32 61

原创 简单排序(冒泡,插入,选择)

排序算法中最基础的三大排序算法,冒泡排序,插入排序和选择排序,按照顺序依次进行分析,参考王道考研。冒泡排序递增的顺序从前往后(从后往前)两两比较相邻元素的值,若(arr[i]>arr[i+1])即较大的数在较前的位置,那么此时就需要将他们进行颠倒,知道整个序列比较结束,这一趟就叫做冒泡排序。其中空间复杂度为O(1)最好的情况下对比的次数是n-1次,就是原本就是有序的,时间复杂度为O(n)。最坏的情况就是要进行n*(n-1)/2次遍历,时间复杂度为O(n²);平均时间复杂度O(n²);算

2021-10-09 15:24:32 84

原创 const char *、char const*、char *const三者区别

最近在写代码时经常碰到这几个定义,总是搞不清楚,看了很多大佬的解析,其实还是很好区分的。首先有指针s表示的是内存地址,有了指针不仅可以对指向的内容进行操作,即 s,还可以对存储地址进行操作&s。一、const char sconst char* s表示的是指向常量的指针,就是不可以利用该指针对其指向的数据进行修改,即*s不能变(但是其他指针可以对这个数据进行修改),但是该指针的指向可以修改,即s可以变。二、char const *schar const *s与第一种const char

2021-07-01 09:56:46 2987

原创 Linux——socket网络编程

网络IP地址类型:IPV4,IPV6在Linux中使用ifconfig查看自己的IP地址mac地址和IP地址都能分别表示特定的一台主机,mac是设备的固定地址,IP地址是可变的。管理IP地址和mac 地址的是协议,有arp、rarp协议等端口:进程的编号,用来区分同一台主机运行的不同进程网络分层模型:osi模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP模型:应用层、传输层、网络层、数据链路层套接字(socket):可以实现不同主机之间的进程通信通用socket

2021-05-18 17:20:16 115

原创 Linux——条件变量

条件变量是线程同步数据的值,当到达某个值的时候,唤醒某个线程。pthread_cond_init()初始化pthread_cond_broadcast()唤醒所有线程pthread_cond_signal()唤醒某个线程需要结合互斥锁一起使用,保证同一时间只有一个唤醒操作#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include &lt

2021-05-12 23:36:02 165

原创 Linux基础——管道

进程间通信(IPC):管道、信号量、共享内存、消息队列、套接字管道是在内存中实现,不在磁盘中,只作为一个通道,大小为0通信分为单工、半双工、全双工单工:a—>b不可逆,一次成型半双工:a->b或b->a可逆,可以调整方向,但需要重新打开,管道为半双工全双工:a<–>b 直接表现为可逆管道的读写也是用 open write read closeopen 必须打开至少两个进程(读写) 否则就会阻塞住也可分为有名管道和无名管道无名管道:父子进程之间进行

2021-04-28 23:16:03 172

原创 Linux基础——bash

bash命令解释器内核<----->命令解释器(shell,bash,sh,tcsh)<----->用户两者之间通过命令解释器进行交互linux中输入的执行命令来源都是bashbash->bash(fork()产生的子进程) 再通过exec()替换这个进程,变成用户需要执行的进程依据这个创建mybash#include<stdio.h>#include<stdlib.h>...

2021-04-28 16:42:45 148

原创 Linux基础——信号

signal信号signal(信号名,对信号的处理)可以接收信号signal(SIGINT,sig_fun);//自定义一个函数sig_fun,约定当遇到SIGINT信号时执行此函数signal(SIGINT,SIG_IGN);//遇到该信号忽略signal(SIGINT,SIG_DFL);//遇到该信号默认执行该信号的操作#include<stdio.h>#include<stdlib.h>#include<signal.h>#inclu...

2021-04-27 20:41:03 91

原创 linux基础——fork()和文件操作

Linux代码中主函数的参数//参数个数 argc(至少有一个)//参数内容 argv(文件名就是其中一个)//环境变量 envpint main(int argc,char *argv[],char *envp[]){ printf("argc=%d\n",argc);//打印函数个数 int i = 0; for(;i<argc;i++){ printf("argv[%d]=%s\n",i,argv[i]);//打印函数内容 } for(i = 0;envp[i] !=

2021-04-26 17:38:20 284

原创 linux命令——显示进程、打包解压、makefile文件

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片

2021-04-24 20:45:04 226

原创 算法——朴素算法和KMP算法

串的匹配长的为主串,短的为模式串。模式串去遍历主串,找到相对应的匹配位置。#include<stdio.h>#include<stdlib.h>#include<string.h>//构造串结构typedef struct String{ char* pstr; int total;//总大小 int cur;//有效元素大小}String,*PString;void initString(PString ps){ if(ps !=

2021-03-28 21:42:55 85

原创 数据结构——串

串1.定长的串#define MAXSIZE = 10struct String{char str=[MAXSIZE];//储存串字符的数组int len;//串字符的长度};2.变长的串struct String{char* pstr;//开辟内存int totalsize;//串当前最大长度int cursize;//串当前有效长度};创建文件“main.cpp”#include<stdio.h>#include"String.h"int main()

2020-09-26 23:15:48 78

原创 数据结构—链队

链队以单链表的形式 FIFO 特征代码部分结点struct Node{ ElemTtpe data;struct Node* next;};头指针和尾指针struct Queue{struct Node* phead;struct Node* ptail;};

2020-09-12 18:11:54 108

原创 Linux——多线程线程安全

#include<stdio.h>#include<string.h>#include<unistd.h>#include<assert.h>#include<stdlib.h>void * fun(void * arg){char buff [] = “1 2 3 4 5 7 8 9 10”;char * ptr = NULL;char * s = strock_r(buff," ",&ptr);printf(“f

2020-08-18 16:05:11 87

原创 Linux——线程中信号量和互斥量的运用

用于控制进程进行顺序信号量 互斥量条件变量 读写锁对单个进程的控制创建“main.c”文件#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<assert.h>#inlcude<pthread.h>#include<semaphore.h>int g = 1;sem_t se

2020-07-26 23:53:50 176

原创 Linux——线程

线程:进程内部的一条执行路径进程:一个正在运行的程序,管理资源分配的基本单位#include<stdio.h>#incldue<stdlib.h>#include<unistd.h>#include<string.h>#include<assert.h>#include<pthread.h>void* fun(void* arg){int i = 0;for(;i<10;i++){printf(“fun

2020-07-24 18:09:55 69

原创 Linux——消息队列

消息队列包括消息类型和消息两部分,消息类型从1开始获取消息输入什么接收什么,输0代表接受所有消息msgget()创建消息msgsnd()添加、发送消息msgrcv()获取消息msgctl() 控制 移除#include<stdio.h>#incldue<stdlib.h>#include<unistd.h>#inlcude<string.h>#include<assert.h>#include<assert.h&gt

2020-06-04 22:52:25 112

原创 共享内存——信号量使用

#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/shm.h>#include<string.h>#include<assert.h>int main(){int shmid = shmget((key_t)1234,256,IPC_creat|0600);//创建共享内存或获取一个已存在的共享内存的idassert( shmid !=

2020-05-26 13:08:27 280

原创 Linux入门——gdb调试、库

linux入门进入终端界面man 帮助手册man + 某一字符目录文件即文件夹ls 浏览ls + 文件名或目录文件名touch 创建新文件mkdir 创建新目录文件rm 删除文件rm _r 可删除文件或目录文件rmdir 删除目录文件cp 拷贝mv 移动mv 文件 目录文件 (若无此目录文件则创建)vi不能进入目录文件...

2020-05-12 19:52:03 153

原创 Linux——信号量

临界资源:同一时刻只允许一个进程访问资源临界区:访问临界资源的代码段。信号量:特殊的变量 正数:0,1,2,3二值信号量:0,1计数信号量:3获取资源则-1, p操作,会阻塞释放资源则+1,v操作,不会阻塞p,v操作皆为原子操作,不会被打断 打印 临界资源 0/...

2020-05-12 19:50:56 98

原创 Linux入门

![Linux入门进入终端界面操作基础

2020-03-06 01:08:08 69

原创 数组反转

首先将0号位的数字与最后一位数字交换,其次将1号位的数字与倒数第二位的数字交换。以此类推,直至中间两个数字完成交换,其中交换次数为数组长度的一半。#include<stdio.h>void Reverse(int arr[],int len){int tmp;for(int i=0;i<len/2;i++)//只需要调换一般的次数{tmp=arr[i];arr[i...

2019-11-02 21:16:21 96

原创 折半查找

#include<stdio.h>int Binsearch(int arr[],int len,int key)//arr[]:数组,len:长度,key:所要找的数字{int low=0;//最小值的下标int high=len-1;//最大值的下标int mid;while(low<=high)//在low和high错位或相等是退出循环{mid=(low+h...

2019-11-02 20:43:51 130

原创 求进制n

1.在n进制下15*4=112,求n? A:5 B:6 C:7 D:82.在n进制下567*456=150216,求n?A:9 B:10 C:12 D:18(1n^1 + 5)4=1n^2+1n+24n+20=n^2+n+2两边同时对n求余(4n+20)%n=(n^2+n+2)%n20%n=2%n ** 4n,n^2,n...

2019-10-22 18:14:06 179

原创 顺序输出问题

顺序输出,逆序输出#求出它是几位数##分别输出每一位数字###按逆序输出各位数字,例如原数为321,应输出123.#include<stdio.h>#include<math.h>//计算位数int Count(long long n){if(n==0)return 1;int tmp=0;while(n!=0){tmp++;n/=10;}...

2019-10-11 17:27:25 207

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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