自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

春风来不来的博客

C/C++/Linux/数据结构

  • 博客(131)
  • 收藏
  • 关注

原创 Linux 系统管理之进程管理:目的、方法、命令

文章概要 本文主要介绍了Linux 系统管理的目的,还有常见系统信息查看的命令,ps 、pstree和top命令,还介绍了如何杀死异常进程,其方式有杀死单个进程、杀死一组进程、以及如何将用户踢出终端(杀掉终端),文末还介绍了进程优先级的概念和修改进程优先级的两个命令 nice 和 renice。一、简介 进程是正在执行的一个程序或命令,每一个进程都有自己的地址空间,并占用一定的系统资源。而

2017-07-08 15:25:20 1590

原创 【Linux】线程总结:初识、创建、等待、终止、分离

学习环境 :  Centos6.5 Linux 内核 2.6 Linux线程部分总结分为两部分:(1)线程的使用 ,(2)线程的同步与互斥。第一部分线程的使用主要介绍,线程的概念,创建线程,线程退出,以及线程的终止与分离。第二部分主要介绍在多线程环境下,使用同步与互斥保护共享资源,有互斥锁,条件变量,信号量,以及读写锁。 第一部分开始初识线程 线程:也称轻量级进程(Lightw

2017-04-29 19:32:45 8693 2

原创 Mac 办公自用提高效率工具集合

防止以后找不到使用的工具CheatSheet长按command 查看快捷键AirServer用来支持手机pad投屏到mac电脑上Alfred3快速查找神器不解释。Bartender3用来管理状态栏图标的,再也不用看到挤得满满的状态栏了。PopClip可以丰富鼠标选中后的动作。CatchMouse如果你已经厌倦了移动鼠标在两个或多个显示器之间挪动的话,那么试试...

2019-03-14 19:25:52 995

原创 机器学习入门之路

目标设立:借助本门课程,同时结合sklearn框架学习机器学习,目的是熟悉机器学习的一般流程,熟悉机器学习框架库的使用,了解部分机器学习KNN算法的原理。一、机器学习的一般流程1.获取数据2.数据预处理3.训练模型4.模型评估5.预测/分类二、KNN算法算法思想如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。通俗一...

2018-11-06 18:38:16 603

原创 每个人生阶段对自己来说都是一场战役

从中学到大学,从大学来到职场,还有将来的婚姻,我们不断寻求探索属于自己的解决方案,一场场“战役”,都印证着人生如棋的理念,到底应该怎么才能找到真正的自我,打赢属于自己的每一场战斗。

2018-11-03 16:40:24 940 1

原创 Linux 文件权限引起的坑

问题的发现之前有过一个reload 数据文件的的上线需求,在上线之后,突然有一天,产品人员提出需求说需要在白名单平台自己reload,以后更新就不需要技术人员来操作,然后产品在更新的时候,发现一只无法更新失败。排查在排查的过程中,发现数据文件的权限是600,即rw-------,产品端平台转换后使用的是用户和运维上线时候的用户不一样,在运维操作的时候是自己的用户可以正常读,但是另外...

2018-09-14 20:52:45 1057

原创 Linux 下 ACE 网络库的编译安装

这里使用的环境是rehat,centos也类似下载下载链接进去找任意找一个版本,wget 到本地,然后用 tar 解压。比如我这里使用6。4。6mkdir acecd acewget http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-6.4.6.tar.gztar -vxf ACE+TAO-6.4.6...

2018-03-07 10:07:02 1112

原创 awk 有多个文件输入时判断来源分别处理

如果 awk 脚本在 Hadoop streaming 上执行awk -F"\t" '{ if(match(ENVIRON["map_input_file"], "xxx") > 0){ pass pass }}'如果awk 脚本在本地单机执行awk -F"\t" '{ if(match(FILENAME, "xx")

2018-01-25 14:39:16 776 2

原创 Tagbar 使用快捷键

tagbar是在vim界面一侧显示文件的标签的插件,类似于taglist,比如文件的类、结构体、函数、变量等。tagbar的安装一、点击下面的网址下载tagbar,安装文件为tagbar.vmbhttp://www.vim.org/scripts/script.php?script_id=3465二、用vim打开: vim tagbar.vmb三

2018-01-18 18:10:23 3623

转载 awk内建变量示例详解之NR、FNR、NF

NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。  在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。

2018-01-16 10:36:24 19579

转载 awk:左移、右移、按位取反、按位与、按位或、按位异或、数值IP转字符串IP

awk中没有左移、右移、按位取反、按位与、按位或、按位异或的操作符,只能用函数。      lshift(val, count)、rshift(val, count)、compl(val)、and(v1, v2)、or(v1, v2)、xor(v1, v2)。一、左移、右移、取反1.1 文件内容1.2 命令与结果      cat 000.txt

2018-01-15 10:34:24 1157

原创 实现智能指针

AutoPtr资源的转移不推荐使用。 旧库使用拥有者会导致野指针实现代码template <class T>class AutoPtr{public: AutoPtr(T* p = NULL) : _ptr(p) {} AutoPtr(AutoPtr<T>& ap) :_ptr(ap._ptr) { ap._ptr

2017-08-06 18:28:11 398

原创 awk sort cut uniq 速查

介绍基本概念awk不仅能以行为单位处理还能以列为单位处理。缺省列分割符是空格或TAB,也可以自定义。命令行调用方式awk [选项参数] 'script' var=value file(s)或awk [选项参数] -f scriptfile var=value file(s)-F 指定输入文件拆分符-f 从脚本文件中读取awk 命令-v 设置变量脚本调用方式将所有的awk命令写入文件中,指

2017-08-05 15:26:58 451

原创 Linux shell脚本的字符串截取

截取左边保留右边有变量 var=http://www.csdn.cn/a.html如果想要截取// 之前的字符即获取到 www.csdn.cn/a.html[Jack@www script]$ echo ${var}http://www.csdn.cn/a.html[Jack@www script]$ echo ${var#*//}www.csdn.cn/a.html[Jack@www sc

2017-07-30 19:40:03 654

原创 使用shell 脚本实现 希尔排序

使用shell 脚本实现 希尔排序 千万要注意数据越界,虽然不处理越界也能排序,但是略微强迫症,所以在while 中加了if判断。#!/bin/bash# 希尔排序function shell_sort(){ # 获取数组长度 size=${#a[@]} for ((gap=size/2; gap > 0; gap/=2)) do for

2017-07-30 18:19:34 614

原创 C 语言实现多态和继承

C语言模拟实现C++继承和多态提示:C 实现一个 struct A 和 stuct B 包含一个 int 成员 a 和 b,要求达到B 继承 A 的效果,也就是 B里面包含一个 A,并且能达到多态的效果,也就是一个 A* p 指向一个指向A 调的是 A 的函数,指向 B 调的是 B 的函数。

2017-07-30 11:34:09 1061

原创 解决Centos7 下中文乱码

打开配置文件sudo vim /etc/locale.conf设置语言LANG=en_US.UTF-8 # 英文 UTF-8#或者LANG=zh_CN.UTF-8 # 中文 UTF-8使配置生效source /etc/locale.conf# 或者 重新登陆终端连接

2017-07-28 21:02:49 8730

原创 sed 工具的高级用法

模式空间与保持空间sed 在正常情况下,将文本一行一行读入到模式空间(pattern space),对匹配的行执行处理后再输出,直到文件末尾。在某些时候可以使用保持空间(hold space),可以完成一些复杂操作。将模式空间理解为流水线,每经过一条数据都会进行处理。而保持空间可以看做一个仓库,可以从里面取数据到模式空间,也可以将模式空间已有数据放到保持空间。sed 高级命令g:将保持空间中的内容

2017-07-27 14:02:58 1676

原创 sed 工具基本使用方法

什么是 sedsed 是流编辑器(Stream Editor),在Shell 脚本和 Makefile 中作为过滤器使用。把一个程序的输入引入 sed 的出入,经过一些列的命令转换为另一种格式输出。sed 使用基础处理文件的来源sed 处理的文件来源有两种方式:标准输入重定向得到。比如将上一个程序的标准输出通过管道重定向到sed工具命令行参数传入。通过命令行参数可以一次传入多个文件,sed 会依

2017-07-27 10:41:34 2041

原创 链表翻转。给出一个链表和一个数K,按照分组逆置。

链表翻转。给出一个链表和一个数K,比如链表1->2->3->4->5->6->NULL,K=2,翻转后 2->1->4->3->6->5->NULL,若K=3,翻转后3->2->1->6->5->4->NULL,若K=4,翻转后4->3->2->1->5->6->NULL,用程序实现ListNode* RotateList(ListNode* list, size_t k)。递归实现/** *

2017-07-24 19:46:16 1146

原创 查找一个字符串中第一个只出现两次的字符

查找一个字符串中第一个只出现两次的字符。 比如 “abcdefabcdefabc” 中第一个只出现两次为‘d’, 要求时间复杂度O(N),空间复杂度O(1)这个题和在一个字符串中查找第一个只出现一次,只出现两次是一个套路。第一眼看到要求空间复杂度为O(1)有点蒙。突然想了一下。。字符最多256 个(前提是ASCII字符)。。不管N 有多大,也有256 限制它。所以空间复杂度依然是 O(

2017-07-19 22:12:21 1634

原创 【Linux】线程总结:线程同步 -互斥锁,条件变量,信号量实现多生产者多消费者模型

学习环境 :  Centos6.5 Linux 内核 2.6 Linux线程部分总结分为两部分:(1)线程的使用 ,(2)线程的同步与互斥。第一部分线程的使用主要介绍,线程的概念,创建线程,线程退出,以及线程的终止与分离。【完成】 地址:【Linux】线程总结:初识、创建、等待、终止、分离第二部分主要介绍在多线程环境下,使用同步与互斥保护共享资源,有互斥锁,条件变量,信号量,以及读写锁。

2017-07-19 21:23:56 3504 3

原创 判断两个链表是否相交,若相交,求交点,考虑带环情况实现代码

梳理一下思路思路相当于求俩个链表的第一个公共结点,要么找到,要么为空,那么考虑到有链表可能有带环的情况,情况共分为下面三种: (1)、两个链表都带环 分别获取两个链表环的入口点 判断入口点是否相同 如果入口点相同,临时修改链表为 Y 形状,处理完毕后恢复 如果入口点不相同,将一个环遍历一周看是否能遇到另外一个环的

2017-07-17 01:24:09 839

原创 常见 HTTP 响应状态码

状态码用来告知客户端请求的结果。客户端可以用服务端返回的状态码,判断是正常处理了请求,还是出现了错误。状态码由3位数字和原因短语组成,如:200 OK ;数字的第一位指定了响应的类别。状态码的类别 类型 含义 原因短语 1XX Informational(信息类) 接收的请求正在处理 2XX Success(成功类) 请求正常处理 3XX Redirect

2017-07-15 15:49:41 1414

原创 刷题记录---每日更新-8月7日

1.【基础题】--实现一个位图。 2.【附加题】--以下三个问题都是位图相关类似题目,请给出解决方案: 1)给定100亿个整数,设计算法找到只出现一次的整数 2)给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集 3)1个文件有100亿个int,1G内存,设计算法找到出现次数不超过2次的所有整数

2017-07-13 14:29:04 914

原创 图的邻接矩阵与邻接表存储方式及优缺点对比

概述 记录一些图的基本概念,以及图的两种表示方式(邻接表和邻接矩阵)的代码实现,最后总结了两种方式的优缺点,还简单介绍了十字链表和逆邻接表。图的部分基本概念(我记不住的)1、完全图一个无向图,任意两个顶点之间有且仅有一条边,则称为无向完全图。若一个无向完全图有 n 个顶点,那么它就有 n∗(n−1)/2n*(n-1)/2 条边。 一个有向图,任意两个顶点之间有且仅有方向相反的两条边,则称为有

2017-07-11 16:44:59 38375 3

原创 Linux系统管理之 crond 与 crontab

cron是任务的意思,tab 表示table。crontab 可以理解为,任务时间表。 crontab 命令是用来让计算机替我们执行周期性任务,比如要在每周二的凌晨五点重启服务器,每天凌晨执行一次备份任务。主要管理以分钟、小时、日、月、周,为周期来执行定期任务。守护进程 crond 为 crontab 命令提供服务。准备工作在使用命令之前,首先要确保服务已安装并启动。1、查看 crond 服务是

2017-07-09 16:19:42 8150

原创 Linux 系统管理之一次性定时任务 at 的使用

环境Centos 6.5at 一次性定时任务1、查看at服务是否安装chkconfig --list | grep atdservice atd restartservice atd status如果系统中有 /etc/at.allow 这是白名单中的用户可以使用at命令,此时黑名单会被忽略 如果没allow,/etc/at.deny 黑名单中的用户不能使用,对root 不起作用如果两个文件都不

2017-07-09 10:23:17 9856 1

原创 解决错误 libmysqlclient.so.18: cannot open shared object file: No such file or directory

我的环境是 centos6.5在连接数据库的时候发现编译可以通过,但是执行的时候提示下面的保存信息。error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory这时候需要看一下的makefi

2017-07-04 17:39:59 5326

原创 【Linux】学会 core dump 事后调试 快速定位段错误

环境: centos 6.5core dump是什么其实就是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。最常见的就是段错误,然后程序直接挂掉。当程序出现段错误时,不要一脸蒙蔽,有一种简单而有效的方式快速定位错误。常见 core dump 错误总结自前辈的经验:一、无效指针对空指针进行了操作对未初始化的指针进行了操作使用一个已经

2017-07-04 11:59:15 6243 1

原创 快速排序的三种实现方式以及非递归版本

一、快速排序的基本思想 快速排序利用了分治的思想,分而治之。通过一趟排序将序列分为两部分,其中一部分比较关键字小,一部分比关键字大。之后继续对这两个子序列重复此过程,直到整个序列都有序。二、快速排序的三个步骤* 选基准值*:在要排序的序列中选一个几个基准值,作为划分区间的 关键字。通常选取关键字的方式对效率有很大的影响。* 分割序列*:按照基准值把序列分为两部分,左边的小于基准值,右边的大

2017-07-02 22:30:59 15900 9

原创 获取函数运行时间的两种方法

第一种:使用 GetTickCount()函数该函数返回从系统运行到现在所经历的时间,返回类型为 DWORD,是unsigned long 的别名,单位为ms。#include <iostream>#include <windows.h>void TestFun(){ // 测试函数...}int main(){ DWORD start_time = GetTickCoun

2017-07-02 20:34:43 1809

原创 Makefile 入门

一、什么是Makefile 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。这一切都由make 工具 和 Makefile中的规则文件替我们完成。二、Makefi

2017-06-30 22:56:09 373

原创 shell编程 实例----彩色进度条

看图:#!/bin/bashindex=('|' '/' '-' '\\')bar='#'i=0while [ $i -le 100 ]do ((colour=30+i%8)) echo -en "\e[1;"$colour"m" printf "[%-100s][%d][%c]\r" "$bar" "$i" "${index[i%4]}"

2017-06-29 00:08:58 608

原创 shell 编程实验--实现学生成绩管理系统

shell 编程实验--实现学生成绩管理系统

2017-06-28 15:32:34 6446

原创 shell 编程实验--实现文件的备份和恢复

########################################################################## File Name: backup-restore.sh# Author: HZG# Created Time: Mon 26 Jun 2017 09:56:19 PM PDT#################################

2017-06-27 13:42:52 1914

转载 Ajax XMLHttpRequest对象的三个属性以及open和send方法

Ajax XMLHttpRequest对象的三个属性以及open和send方法(1)onreadystatechange 属性onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:xmlHttp.onreadystatechange=function()

2017-06-26 20:04:24 779

原创 Linux 中 shell 中反引号与 $() 的对比

这两者都是命令替换,命令替换是指:是Shell 执行命令并将命令替换部分替换为执行该命令后的结果。比如:[bob@centos home]$ val=hello[bob@centos home]$ echo $(echo $val)val[bob@centos home]$ echo `echo $val`val或者:[bob@centos home]$ echo $(date)2017年

2017-06-25 20:54:22 1700

原创 Linux 中 eval命令的作用

eval是一个bash内部命令,在bash手册页中进行了描述。eval [arg ...] The args are read and concatenated together into a single com- mand. This command is then read and executed by the shell, and its exit

2017-06-25 20:16:01 4293

原创 排序算法之直接插入排序、二分插入排序和希尔排序

下列所有排序都默认是升序,从小到大。插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部

2017-06-25 19:14:14 1085

空空如也

空空如也

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

TA关注的人

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