自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux线程小结

线程的基本概念在学习了进程之后,大家都知道进程就是一个正在运行的程序的实例。那什么是线程呐?线程是一个进程内部的一个控制序列。所有的进程都至少有一个执行线程。线程概念引入的原因linux操作系统既然已经建立了进程的概念,那为什还要使用线程呐?在Linux系统下,创建一个进程必须分配给它独立的地址空间,建立数据表来维护它的代码段、堆栈段和数据段,这样很耗费资源。而同一进程中的线程们,他们使用相同的地址空间,共享大部分数据,创建线程的资源花费远小于创建一个进程。而且线程之间的切换远远比进程之间切换省

2020-05-13 11:57:15 292

原创 代理服务器与反向代理服务器

加速器:玩PUBG时,游戏特别卡,想要得到比较好的游戏体验,只能购买加速器。其实加速器也是一种代理服务器,当传输数据很多时,当前的传输通道就会拥挤,客户和服务器的连接就会不稳定。但是传输通道不止这么一条,只是客户没有其中一些通道的使用权。而客户可以使用的通道,大多都是传输效率特别低的,传输效率可观的都不能使用。加速器就是买下了那些效率可观的通道,可以在拥挤时让客户使用它们的通道来达到网络顺畅的...

2019-12-06 18:16:38 468

原创 GRUB简单介绍

Linux下主流的Boot Loader:grubGNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。(百度百科)☺☺☺Boot...

2019-11-30 21:03:17 4193

原创 CMake简单使用

什么是CMake?大家都知道makefile就是用来管理代码自动化编译的工具,而cmake就是makefile的上层工具,目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量。cmake能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake.1.首先我们来编写一个“Hello Wor...

2019-11-24 17:33:12 275 2

原创 编译型语言和解释型语言

Python 是一门解释型的编程语言,因此它具有解释型语言的运行机制。计算机程序,其实就是一组计算机指令的集合,能真正驱动机器运行的是机器指令,但让普通开发者直接编写机器指令是不现实的,因此就出现了计算机高级语言。高级语言允许使用自然语言(通常就是英语)来编程,但高级语言的程序最终必须被翻译成机器指令来执行。高级语言按照程序的执行方式,可以分为编译型和解释型两种。编译型语言编译型语言是指使...

2019-11-02 18:33:23 189

原创 shell脚本

什么是shell脚本?shell脚本就是利用shell功能所写的一个程序,这个程序使用纯文本文件,将一些shell的语法与命令结合在一起所写出的提供给程序员们用啦达到自己的目的。查看当前环境shell:echo $SHELL查看系统自带哪些shell:cat /etc/shells第一个shell脚本#!/bin/bash //用bash程序来执行,输入sh或者...

2019-10-26 16:13:12 229

原创 字符串匹配

下面是字符串匹配问题的一个例子如果p在文本T中出现,那么称s是有效偏移,否则为无效偏移。下面介绍字符串匹配的算法朴素算法:该算法通过一个循环找到所有有效偏移,该循环对n-m-1个可能的s值进行检测,然后一一判断。时间复杂度为O((n-m+1)m)伪代码:n = T.lengthm = P.lengthfor s = 0 to n-m if P[1..m] == T...

2019-10-14 16:43:03 137

转载 Git命令总结

Git简介1. 创建版本库$ cd:e // 切换盘符$ cd … // 回到文件上一层(注: cd与…中间有个空格)$ cd ~ // 回到当前目录的主目录$ mkdir Git // 创建文件夹Git$ touch fileName // 新建文件$ vi fileName // 编辑文件$ press i button // 开始进入编辑状态$ press the Esc ...

2019-09-01 11:22:41 79

原创 大一暑假留校总结

时间:2019-7-18 ----2019-8-21整个暑假留校大概就五周的时间,每周都有项目,每周也都有算法题,晚上也有讲座和算法题的讲解,每周一周五早上都有开会,每天都是8点起来,10点多回宿舍。下面来详细讲一下每周的生活以及学习情况。第一周:(2019-7-18 – 2019-7-21)18号晚上来大一的展示课设,然后算法对的小朋友向我们介绍了算法以及暑假的算法学习方向。19,20号...

2019-08-31 22:06:05 300

原创 基础排序小结

快序排序寻找第k小的数:快速排序每次都可以找到选择的基准数在排序完成的序列中的位置,那么如何寻找排序完成的序列中第k小的数呐?这是蓝桥杯第第八届的一道题目。#include <stdio.h>int quick_select(int a[], int l, int r, int k) { int p = rand() % (r - l + 1) + l; int...

2019-08-11 21:50:58 80

原创 本周测验小结

哲学家问题:哲学家进餐问题描述有五个哲学家,他们的生活方式是交替地进行思考和进餐,哲学家们共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五支筷子,平时哲学家进行思考,饥饿时便试图取其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐,该哲学家进餐完毕后,放下左右两只筷子又继续思考。#include <stdio.h>#include <stdlib.h>...

2019-08-04 19:18:26 109

原创 进程线程问题总结

今天记录一下最近在学习进程和线程方面的只是中,所遇到的一些问题。父进程先于子进程结束,子进程就变成了孤儿进程,它会由init进程收养,成为init进程的子进程,本来它父进程的ID应该为init的ID也就是1.但如果你在Ubuntu的图形界面的终端下执行下面的程序,你会发现孤儿进程的ID并不是1.#include<stdio.h>#include<stdlib.h>#...

2019-08-04 18:52:34 283

原创 线程讲座回顾

与进程比较的优点:1.进程的地址空房都是独立的,而线程是共享进程的内存,所以在多线程中创建一个新的线程所花费的时间要远远小于创建一个进程花费的时间,因为进程还需要系统为其分配空间。2.由于地址空间共享,所以线程的切换速度要比进程快3.对某些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。一些进程函数的例子:pthread_t pthread_self(void); (...

2019-08-02 15:56:41 99

原创 C语言实现简单的shell

实现的功能:1重定向: < 、>、>>, dup2(oldfd,newfd),标准输入的文件描述符为0,标准输出的为1,标准错误输出的为22管道: | 也需要用到dup2(oldfd,newfd),标准输出用1,标准输入用03后台运行程序(&):父进程直接返回,不等待子进程结束4shell内置命令:只实现cd5tab键补全和上下键:需要用到readline...

2019-07-28 17:36:43 1138

原创 本周算法题总结:二分

二分:使用二分必须保证数列是有序递增数列,下边是实现代码int up_down( int *num, int l, int r, int key ){ int mid; while ( l < r ) {       //有些人也会写l<=r,但有个小胖子要我这么写 mid = l+(r-l)/2; //相当于(l+r)/2,还是那个小胖子非...

2019-07-28 16:27:57 420 2

原创 C语言实现单链表逆置

思路:使用三个指针,pre指向第一个结点,cur指向要逆置的结点,rear指向逆置结点后边的结点,循环条件为逆置结点存在,reverse函数实现逆置。下面是实现的代码:在这里#include <stdio.h>#include <stdlib.h>typedef struct Node{ int value; struct Node *next;...

2019-07-27 17:41:36 2302 4

原创 面试题总结

1.数组指针和指针数组的区别数组指针:int(*p)[n];()优先级高,所以p首先是一个指针,指向一个整形的一维数组,这个一维数组的大小为n个int。用法:让数组指针指向二维数组int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //让p指向a的首地址。p++; //该语句执行过后,也就是...

2019-05-13 22:53:35 150

原创 clrs-分治法

分治法思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。分治法在每层递归中都有三个步骤:分解:将原问题分为若干个子问题,这些子问题是原问题的规模较小的实例。解决:这些子问题,递归地求解各个子问题。若子问题的规模足够小,则直接求解。合并:这些子问题的解成原问题的解。分治法之快速排序(随机抽样优化算法)核心代码:...

2019-04-15 23:57:23 531

空空如也

空空如也

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

TA关注的人

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