自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 shell函数案例

来源:https://coding.m.imooc.com/classindex.html?cid=3141.函数返回值shell函数返回值分为两种return: return 只能返回0~255整数,0表示函数运行成功,非0表示函数运行失败,返回函数状态码echo: echo 作为函数的返回值代码:#!/bin/bash##得到到运行当前脚本的进程idthis_...

2019-10-25 10:58:39 351

原创 shell数学运算案例

来源:https://coding.m.imooc.com/classindex.html?cid=314案例1 :利用bc 命令进行浮点数运算#!/bin/bash#输入两个数计算两个数的商read -p "num1: " num1read -p "num2: " num2#scale 设置精度num3=`echo "scale=2;$num1/$num2" | bc`...

2019-10-23 14:39:57 235

原创 shell命令替换

来源:https://coding.m.imooc.com/classindex.html?cid=314语法: 语法格式 方法一 ·command· 方法二 $(conmand) 作用:将一个命令的结果作为另一个变量的参数例子:输出当前系统时间是当年的第几天、第几个星期、还有多少天,还有多少个星期#!/bin/b...

2019-10-22 14:44:39 867

原创 shell字符串处理脚本

来源:https://coding.m.imooc.com/classindex.html?cid=314下面的脚本对string进行简单的处理1.统计string长度2.删除string所有的Hadoop3.替换第一个Hadoop4.替换所有的Hadoop#!/bin/bashstring="Bigdata process framework is Hadoop,Ha...

2019-10-21 17:02:48 241

原创 shell脚本变量替换

来源:https://coding.m.imooc.com/classindex.html?cid=314#!/bin/bashvariable_1="me:i love you, do you love me , girl:i don't love you, go away\n"#从变量开头进行匹配,将符合匹配最短的字符串删除echo 'befor delete: ' $varia...

2019-10-21 14:19:51 953

原创 Socket error Event: 32 Error: 10053

最近买了一个vultr的一个云服务器用xshell登录的时候总是会包以下错误Socket error Event: 32 Error: 10053.Connection closing...Socket close.百度以下有几种解决办法但一直没用,直到看到一篇关于Linux 防火墙的博客,说这种错误可能是ssh的端口被防火墙保护所以我修改了/etc/ssh/sshd_co...

2019-10-14 14:30:52 17396 2

原创 冒泡排序

data = [4,3,7,2,10,23,11,24,13,2,1]n = len(data)#冒泡排序def paoSort(): for i in range(n-1): for j in range(n-i-1): if data[j] > data[j+1]: #交换 ...

2019-09-17 16:09:16 93

原创 matplotlib折线图

import matplotlib.pyplot as pltfrom pylab import mpl#折线图def ployLine(): #绘制折线点 #产生x,y列表,由于折线图的的性质x,y必须一一对应 #生成x轴上的点 x = range(2,26,2) #生成y轴上的点 y = [24, 24.5, 26, 28, 33, 3...

2019-09-02 12:00:11 142

原创 tar命令

2019-08-26 16:50:50 105

原创 python当前路径

test.pyimport osprint(__file__)print(os.path.dirname(__file__))print(os.path.abspath(__file__))print(os.path.abspath(os.path.dirname(__file__)))

2019-08-13 23:19:50 2951

原创 optparse示例

from optparse import OptionParserparser = OptionParser()parser.add_option("-n", "--n", dest="name", help="what's you name")parser.add_option("-a", "--a", dest="age", help="how old are you")parse...

2019-05-21 10:46:23 110

原创 python 迭代器

"""手写一个迭代器 显示python 中迭代器的原理"""import timeclass Girls(object): def __init__(self): self.names = ["lena", "moon", "sara"] # python 中实现__iter__方法的对象可以成为一个可迭代对象iterable def __ite...

2019-04-28 15:50:49 111

原创 linux相关命令(极客时间笔记)

用户相关passwd 修改命令useradd 添加用户文件相关cat 查看文件ls -l 以列表的形式查看当前目录下的文件列表chmod 修改文件权限chown 修改文件用户chgru 修改文件所属组软件相关(无软件管家版) 安装软件 rpm -i x.rpm centos体系 dpkg -i x.deb ubuntu体系 查看软件列表 rpm -...

2019-04-16 15:46:23 556

原创 可能用到的windows命令

windows 命令winver 查看Windows版本cmd 打开Dos窗口regedit 打开注册表services.msc 打开windows服务列表dxdiag Diretx诊断工具 可查看电脑的硬件配置control ...

2019-04-16 15:36:36 101

原创 单例模式(懒汉模式)线程安全问题

单例模式代码示例/** 单例模式(懒汉模式)*/public class Singleton { private Singleton() {} //私有化构造方法 private static Singleton instance; public static Singleton getInstance() { try { Thread.sleep(100);...

2019-01-17 17:20:33 6414 5

原创 python暴力解压rar压缩包

写代码之前先吐槽一下rarfile这个第三方工具因为unrar的代码不公开所以python的解压工具还要依赖c的动态链接库,可非了我半天时间搜索具体解决办法:https://blog.csdn.net/ysy950803/article/details/52939708还有就是rarfile的extractall方法在遇到错误密码的时候竟然没有抛出异常信息,所以检查密码是否正确就只能观...

2019-01-05 18:04:26 4643 2

原创 快速排序

1.思想设需要排序的数组下标p-r,选择p-r任意一个数据pivot(分区点),遍历p-r,将小于pivot的数据放左边,大于pivot的数据放右边,pivot放中间,进过这一步骤后,数组p-r,即被分为三个部分(p、q-1)小于pivot(q+1、r)大于pivot中间是pivot,根据分治、递归的思想,递归排序p-q-1、q+1-r的数据,直到区间缩小为1说明数据有序图解:递推...

2018-12-04 11:07:52 130

原创 归并排序

归并排序1.思想将一个需要排序的数组分为(递归的)两半分别排序,然后将结果归并起来2.实现过程归并排序的过程是一个分治递归的过程写递归一个步骤1.写出递推表达式和终止条件2.实现递推代码os:是不是很简单,才怪!!!归并排序的递推式递推公式:merge_sort(lo…hi) = merge(merge_sort(lo…mid), merge_sor...

2018-12-03 14:43:53 151

原创 排序(冒泡、插入、选择)

排序是算法研究中比较重要的一个部分,这里列举比较简单的三种排序算法的c++实现1.交换函数交换函数可以让代码看上去更加简洁tip:在面试的时候,要求手写代码时,将一些重复的代码写成函数,还以为你的代码加分哦//交换数据void swap(int& a ,int& b){ int temp = a; a = b; b = temp;}2.冒泡排序...

2018-11-29 11:25:38 140

原创 快速幂

快速幂 一种快速求指数的方法一般求a^b的做法,就是将a循环相乘b次时间复杂度为O(b),即O(n),快速幂可以将时间复杂度将为O(logn)那它是如何做到的呢以b = 11 为例11 的 二进制 为 1011,即2^3*1+2^2*0+2^1*1+2^0*1,所以a^b = a^(2^3*1)*a^(2^2*0)*(2^1*1)*a*(2^0*1)①这里引入两个位操作符...

2018-11-27 11:58:36 133

原创 二分法及其变体问题

1.寻找一个元素在数组中的位置//二分查找int midfind1(int lo,int hi,int tar) { int mid; while (lo <= hi) { mid = lo + (hi - lo) / 2; if (a[mid] > tar) hi = mid - 1; else if (a[mid] < tar) lo = mid +...

2018-11-23 17:03:29 360

原创 二分法求平方根

1.问题利用二分法求一个数的平方根,精度要求 e < 10^-6;2.思路1.要求x(x>0)的完全平方根,则二分法范围为[low,up] 其中 low = 0, up = x2.令mid = (up+low)/23.以fabs(mid * mid - x) >=1e-6为循环条件3.1若满足条件,令mid = (up+low)/2,判断mid*mid与...

2018-11-22 16:27:15 14042 1

原创 不带括号的表达式计算

一、表达式形式2*3+6/3+5二、问题假设一中的表达式是一段程序可读的字符串,如何计算表达式的值三、思路1.创建两个栈,分别为数字栈、和运算符栈2.遍历字符串3.当遇到数字将数字存储到数字栈中4.当遇到运算符时,比较运算符栈顶元素和当前运算符的优先级4.1若当前元素大于栈顶元素,将当前元素压入运算符栈4.2若当前元素小于等于栈顶元素,将栈顶元素弹出4....

2018-11-16 17:40:59 1587 2

原创 带括号的表达式计算

一、表达式形式形如(3*(2+5)),每个运算符之间都有括号相隔二、问题假设一中的表达式是一段程序可读的字符串,如何计算表达式的值三、思路1.创建两个栈,分别为数字栈、和运算符栈2.遍历字符串2.1遍历遇到‘(’不处理2.2遍历到数字,将数字储存到数字栈中2.3遍历到运算符,将运算符储存到运算符栈中2.4遍历到‘)’,从数字栈中取出两个数,从运算符中取出栈顶...

2018-11-16 14:41:20 4054

原创 单链表关于环的几个问题

问题:1.单链表是否有环2.环的节点长度3.环的入口节点4.表头到环入口的节点长度问题1.思路:在表头设置fast、slow指针,fast一次遍历两个节点,slow一次遍历一个节点,若相遇则证明有环,反之则不存在环代码:/** *引入快慢指针,若指针相遇则证明链表有环 */Node * findRing(Node *head) { Node * fast...

2018-11-08 14:09:17 165

原创 requests-beautifulsoup-re爬取股票行情信息

问题:想利用python技术爬取网上股票的行情信息目标网站:东方财富网 http://quote.eastmoney.com/stocklist.html 百度金融 https://gupiao.baidu.com/stock/思路:观察百度金融网站,在它的链接后加上股票id.html就可以获得该股票的行情信息页面观察东方财富网的源代码可知股票id信息镶嵌在HTML...

2018-11-07 15:36:54 1154

原创 括号匹配(栈)

 问题:利用程序判断字符串中的括号是否匹配[()],左右括号出现在对应位置则匹配,反之则不匹配思路:利用栈后进先出的特点0.从左自右遍历字符串1.遇到左括号时,将左括号压入栈中2.遇到右括号时,先判断栈是否为空,2.1若为空,则括号不匹配,右括号过多2.2若不为空,判断栈顶元素是否和左括号匹配3.当字符串遍历结束时,判断栈是否为空3.1若为空,则括号匹配...

2018-11-05 11:58:54 370

原创 requests-BeautifulSoup爬取美女贴吧图片

xx才是第一生产力爬取页面http://tieba.baidu.com/p/21662318801.getHtml(url)根据页面链接获取页面内容,值得值得注意的是这里使用了see_lz=1的参数获得只看楼主的页面,防止其他图片的干扰2.getImgUrl(ulist,html)使用了bs4库的find_all()方法得到所有图片的链接并存储到ulist中3.downloadIm...

2018-10-30 21:13:58 2330

原创 re库入门

1.正则表达式(regular expression)正则表达式是用来简洁表达一组字符串的表达式2.正则表达式的常用操作符 操作符 说明 实例 . 表示任何单个字符   [] 字符集,对单个字符给出取值范围 [...

2018-10-28 21:27:07 634

原创 requests-beautifulsoup爬取大学排名网站

1.根据url爬取页面内容def getHTMLText(url): try: r = requests.get(url,timeout=30)#设置超时时长为30s r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return ""2.使用beautifuls...

2018-10-26 14:08:20 596

原创 BeautifulSoup库的使用

1.安装这里使用最方便的安装方式,在cmd中输入命令(前提电脑安装了pip)pip install beautifulsoup42.beautifulsoup4的基本元素 基本元素 说明 Tag 标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾 Name...

2018-10-25 22:47:08 455

原创 单链表操作

1.创建链表2.链表反转3.删除链表的倒数第k个元素4.返回链表的中间节点5.合并两个有序链表6.单链表关于环的几个问题关于链表操作有几个特别好的帖子讲解比较细:https://segmentfault.com/a/1190000008453411画的图不错:https://blog.csdn.net/qq_34992845/article/details/5394...

2018-10-23 21:14:22 134

原创 合并有序链表

对这个问题想法其实很直接1.p和q分别指向两个有序链表的头指针2.缓存其中一个头指针nhead,并用指针h指向它2.p和q分别开始遍历链表,并比较每次链表存放的数据3.如果p指向的数据较小,把p指向的节点连接到h节点的后面,h节点向后移一位,q节点向后移一位4.如果q指向的数据较小,重复上述操作,操作对象为q指针5.重复上述操作,若其中遍历结束,那遍历剩下的链表代码:...

2018-10-23 16:48:49 191

原创 找到链表的中间节点

问题和删除倒数第k个节点类似,如果两次遍历很容易得到结果这里可以使用快慢指针的方法p每次遍历两个节点,q每次遍历一个节点当p或者p的下一个节点为空时,q指向链表的中间节点代码:int midList(Node * head) {//快慢指针 Node * fast = head; Node * slow = head; while (fast&&fast...

2018-10-22 21:47:00 742

原创 遍历一次删除倒数第k个节点

如果遍历两遍链表,很容易就能想到方法,先遍历一边求出链表长度n,遍历第二遍时遍历到n-k位置删除n-k+1个节点现在是遍历一遍过程也很简单1.声明两个指针p、q,分别指向链表头结点,让p遍历到第k个节点处2.若p还没到k处就指向空,则链表长度不够,返回head3.p、q同时开始遍历链表直到p遍历到链表最后一个节点,这是q到达n-k个节点处,删除到q的下一个节点即可代码:N...

2018-10-22 21:36:05 1736

原创 request库爬虫实例

requests库api解释:requests.get(url, params=None, **kwargs) url : 拟获取页面的url链接params : url中的额外参数,字典或字节流格式,可选**kwargs: 12个控制访问的参数request.get()返回response对象Response对象属性 属性 说明 ...

2018-10-22 15:42:56 4383

原创 链表反转

原贴:https://blog.csdn.net/blioo/article/details/62050967反转过程:1.创建链表2.指针p保存第一个有数据的节点,将头节点和链表断开,用空指针q做反转后的最后一个节点3. 让第二个元素节点的指针从指向第三个元素节点变为指向第一个元素节点,以此类推,直至指针p指向原链表最后一个元素。  4.p指针指向NULL时,...

2018-10-21 16:52:41 148

原创 创建链表

1.头插法新元素从头部插入Node * head_initList() //头插法创建链表{ Node * head = new Node; //创建头指针 Node *s;//临时指针,指向新的节点 int n; while (cin >> n&&n != -1) { s = new Node; s->data = n; s-...

2018-10-21 16:07:48 548

原创 使用vector迭代器实现二分查找

//vector二分查找#include "stdafx.h"#include <iostream>#include <vector>using namespace std;int main(){ vector<int> text = { 1,2,4,5,6,7,8,10,12 }; int result; cin >> re...

2018-10-09 16:45:44 909

原创 const修饰变量时可能发生的错误

C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。const int a = 10;a = 20; //错误 a为不可修改的左值int a = 10;const int &r = a;a = 20;r = r + 1; //错误 ...

2018-10-09 10:25:49 590

java并发编程

第1节你真的了解并发吗? [免费观看][免费观看] 00:27:48分钟 | 第2节理解多线程与并发的之间的联系与区别 [免费观看] 00:11:59分钟 | 第3节解析多线程与多进程的联系以及上下文切换所导致资源浪费问题 [免费观看] 00:13:03分钟 | 第4节学习并发的四个阶段并推荐学习并发的资料 [免费观看] 00:09:13分钟 | 第5节线程的状态以及各状态之间的转换详解00:21:56分钟 | 第6节线程的初始化,中断以及其源码讲解00:21:26分钟 | 第7节多种创建线程的方式案例演示(一)带返回值的方式00:17:12分钟 | 第8节多种创建线程的方式案例演示(二)使用线程池00:15:40分钟 | 第9节Spring对并发的支持:Spring的异步任务00:11:10分钟 | 第10节使用jdk8提供的lambda进行并行计算00:14:22分钟 | 第11节了解多线程所带来的安全风险00:13:16分钟 | 第12节从线程的优先级看饥饿问题00:18:42分钟 | 第13节从Java字节码的角度看线程安全性问题00:25:43分钟 | 第14节sy nchronized保证线程安全的原理(理论层面)00:13:59分钟 | 第15节synchronized保证线程安全的原理(jvm层面)00:25:03分钟 | 第16节单例问题与线程安全性深入解析00:27:15分钟 | 第17节理解自旋锁,死锁与重入锁00:24:58分钟 | 第18节深入理解volatile原理与使用00:28:30分钟 | 第19节JDK5提供的原子类的操作以及实现原理00:27:10分钟 | 第20节Lock接口认识与使用00:19:54分钟 | 第21节手动实现一个可重入锁00:26:31分钟 | 第22节AbstractQueuedSynchronizer(AQS)详解00:49:04分钟 | 第23节使用AQS重写自己的锁00:31:04分钟 | 第24节重入锁原理与演示00:12:24分钟 | 第25节读写锁认识与原理00:18:04分钟 | 第26节细读ReentrantReadWriteLock源码00:30:38分钟 | 第27节ReentrantReadWriteLock锁降级详解00:13:32分钟 | 第28节线程安全性问题简单总结00:15:34分钟 | 第29节线程之间的通信之wait/notify00:32:12分钟 | 第30节通过生产者消费者模型理解等待唤醒机制00:20:50分钟 | 第31节Condition的使用及原理解析00:17:40分钟 | 第32节使用Condition重写wait/notify案例并实现一个有界队列00:22:05分钟 | 第33节深入解析Condition源码00:21:15分钟 | 第34节实战:简易数据连接池00:24:53分钟 | 第35节线程之间通信之join应用与实现原理剖析00:10:17分钟 | 第36节ThreadLocal 使用及实现原理00:17:41分钟 | 第37节并发工具类CountDownLatch详解00:22:04分钟 | 第38节并发工具类CyclicBarrier 详解00:11:52分钟 | 第39节并发工具类Semaphore详解00:17:27分钟 | 第40节并发工具类Exchanger详解00:13:47分钟 | 第41节CountDownLatch,CyclicBarrier,Semaphore源码解析00:29:57分钟 | 第42节提前完成任务之FutureTask使用00:11:43分钟 | 第43节Future设计模式实现(实现类似于JDK提供的Future)00:19:20分钟 | 第44节Future源码解读00:29:22分钟 | 第45节Fork/Join框架详解00:28:09分钟 | 第46节同步容器与并发容器00:18:44分钟 | 第47节并发容器CopyOnWriteArrayList原理与使用00:15:52分钟 | 第48节并发容器ConcurrentLinkedQueue原理与使用00:31:03分钟 | 第49节Java中的阻塞队列原理与使用00:26:18分钟 | 第50节实战:简单实现消息队列00:11:07分钟 | 第51节并发容器ConcurrentHashMap原理与使用00:38:22分钟 | 第52节线程池的原理与使用00:42:49分钟 | 第53节Executor框架详解00:36:54分钟 | 第54节实战:简易web服务器(一)00:55:34分钟 | 第55节实战:简易web服务器(二)00:24:36分钟 | 第56节JDK8的新增原子操作类LongAddr原理与使用00:17:45分钟 | 第57节JDK8新增锁StampedLock详解00:29:37分钟 | 第58节重排序问题00:23:19分钟 | 第59节happens-before简单概述00:15:17分钟 | 第60节锁的内存语义00:13:54分钟 | 第61节volatile内存语义00:12:04分钟 | 第62节final域的内存语义00:34:07分钟 | 第63节实战:问题定位00:07:48分钟 |

2019-01-03

空空如也

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

TA关注的人

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