自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZM970307的博客

GreenHand

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

转载 MarkdownPad 2 授权密钥

邮箱:[email protected]授权秘钥:GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwfeTG7kUdnhKE0vVy4RidP6Y2wZ0q74f47fzsZo45JE2hfQBFi2O9Jldjp1mW...

2018-12-21 14:42:32 1716 1

原创 通过哈希算法实现图片去重

图像去重:MD5和SHA算法 最近找了几个关于图像去重的博文,整理了一下,和大家分享。采用感知哈希算法基于python-PIL的图像去重https://blog.csdn.net/Gentle_Guan/article/details/73384767用Python实现通过哈希算法检测图片重复的教程http://www.jb51.net/article/63320.htm...

2018-05-02 22:27:25 10487 1

原创 Linux常用命令

常用操作ls --help //查看ls指令的帮助文档cat test.c //在命令行窗口显示文件内容wc -l test.c //查看文件的总列数echo Hello //打印Hellotar xvf 文件名 //解压文件chmod -R 777 filename 递归修改权限file filename //查看文件信息vim下常用操作...

2018-05-01 23:08:33 497

转载 归并排序(分治法+简洁易懂)

归并排序是一种高效的排序算法(时间复杂度(O(nlogn))),按照分治三步法,对归并排序算法介绍如下: 划分问题: 把序列分成元素个数尽量相等的两半 递归求解:把两半元素分别排序。 合并问题:把两个有序表合并成一个 (我之前看都没有看过归并排序这么简洁的代码,包括在书上) 归并好处:高效(思想也很重要) 缺点:需要辅助存储空间。#include"stdio.h" #inc...

2018-04-17 19:10:35 685

原创 去除数组中重复的元素,并返回去重后数组的长度

#include <iostream>using namespace std;void insertSort(int a[], int n) //插入排序{ for(int i = 1; i < n; i++) { int j = i - 1; int key = a[i]; while (a[j] >...

2018-04-16 21:53:53 1600

转载 程序员必须知道的10大基础实用算法及其讲解:排序、查找、搜索和分类等

算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(i...

2018-04-16 20:53:28 405

原创 C++中new和delete来创建和释放动态数组

在C++编程中,使用new创建数组然后用delete来释放。 一、创建并释放一维数组#include<iostream>using namespace std;int main(){ int n; cin>>n; //分配动态一维数组 int *arr=new int[n]; for(int i=0;i<n;...

2018-04-14 21:54:25 4004

原创 二叉树的层序遍历(附完整C++代码)

原理介绍层序遍历所要解决的问题很好理解,就是按二叉树从上到下,从左到右依次打印每个节点中存储的数据。如下图:   按层序遍历的原则,打印顺序依次应该是:A->B->C->D->E->F->G。   看完是不是感触非常深,这不就是队列数据结构最拿手的绝活吗,FIFO,先进先出!我从上到下,从左到右依次将每个数放入到队列中,然后按顺序依次打印就是想要的...

2018-04-13 20:28:21 6345 1

原创 二叉树相关代码(从数组生成二叉树、中序线索化、层序遍历)

最近,我把二叉树树的几个相关代码敲了一遍,均运行成功,在此上传博客,与大家分享。代码主要包含: - 从键盘生成二叉树 - 从数组(vector)生成二叉树 - 二叉树的中序遍历 - 二叉树的中序线索化 - 线索二叉树的中序遍历 - 二叉树的层序遍历树图: 附上代码:#define _CRT_SECURE_NO_WARNINGS#include <stdio...

2018-04-12 22:54:07 569

原创 建立二叉树时使用scanf读取输入时出现的错误

构建二叉树的函数代码如下,运行的时候发现第一次输入一个字符A,然后按回车,发现下次等待用户输入前打印了两条“please input the data”语句。因为输入A以后再调用这个函数,scanf直接在输入流里面读取了10(回车),所以这次没有让用户输入,所以需要用户输入的时候,发现已经打印了两条语句。void createBiThrTree(BiThrTree *T){ prin...

2018-04-10 22:29:28 506

原创 scanf()和getchar() 使用

问题描述一:(分析scanf()和getchar()读取字符)scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。 下面先看一个很简单的程序:#include <stdio.h>int main(){ char ch1, ch2; scan...

2018-04-10 22:26:31 385

原创 动态数组

动态数组的优点:传统数组(静态数组)是需要在程序运行前,就指定大小,比如说int i = 10;int a[i];这种就是不合法的。 因为函数栈的要求,就是在函数运行前,分配好所有变量的空间,i是不定的,所以不能再运行前,就分配好空间。但是大多数情况,我们并不能预先知道数组的大小的。 所以我们使用动态数组int *a = new int[i];这个语句就可以在...

2018-04-08 21:06:56 430

转载 排序算法的稳定性及其意义

稳定性的定义      假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。判断方法对于不稳定的排序算法,...

2018-04-03 21:02:20 222

转载 几种排序算法的特性总结

昨天做腾讯的笔试题中有一道选择题,问几种排序的最坏情况,快排,冒泡大家肯定都知道是n^2,当时选项中有一个堆排序,不是很确定,下来就把这些收集了一下表格转自http://www.cnblogs.com/xiaochun126/p/5086037.html之后就重点说一下堆排序和快排的选择问题各种常用排序算法类别排...

2018-04-03 20:57:31 520

原创 vector作为形参,要传递引用

数组作为形参时,传数组指针即可; 而vector作为形参时,要传引用,否则无法通过形参改变实参。具体看代码:

2018-04-03 20:49:13 2984

原创 再次学习快速排序——优化

今天,我学习了一些优化快速排序的方法。 附上代码: (优化前的代码为被注释掉的代码,优化后的代码我也用中文注释加以说明了)#include <stdio.h>void swap(int *a, int *b);void QuickSort(int *a, int low, int high){ //if(low < high) while(lo...

2018-03-27 23:14:38 164

转载 进程与进程描述符

一、 进程进程(Process) 计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。—————...

2018-03-20 22:12:29 1221

原创 初窥驱动

2018-03-17

2018-03-17 23:03:41 227

原创 Qt中的常用插件

myWidget.cpp文件#include "mywidget.h"#include "ui_mywidget.h"#include #include #include #include myWidget::myWidget(QWidget *parent) : QWidget(parent), ui(new Ui::myWidget){ ui->s

2018-02-03 22:07:12 1926

原创 传递数组引用——数组作为形参时的最优解决方案

传值、传指针、传引用的区别:值传递,指针传递,当发生函数调用时,需要给形参分配空间,当传递的是对象是,要调用拷贝构造函数。而且指针最后析构时,要处理内存释放问题。引用传递,在内存中没有产生形参。效率大大提高!也不用处理指针的析构问题。数组作为形参弱化成为指针:数组有两个特性,影响作用在数组上的函数:一是不能复制数组,二是使用数组名时, 数组名会自动指向其第一个元素的指针。因

2018-02-02 20:04:46 11105

转载 Qt使用QSplitter实现分割窗口

分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口设计中,然后抱着这样的想法简单的实现了下  [cpp] view plain copy print?//main.cpp  #include   #include   #include   #include     int main(int argc, char *argv[])  {      QTe

2018-02-01 13:55:26 1183

转载 解决VS2010中winsock.h与winsock2.h冲突(重复定义)——转载

当这两个头文件顺序颠倒时,编译会出现许多莫名其妙的错误,错误如下:1>…\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition 1>…\include\winsock.h(460) : see previous definition of 'AF_IPX' …[原因分析]        主要原因是

2018-01-31 20:43:28 1521

原创 C/C++ 字符数组的输入输出

字符数组就是char数组,当维度是一维是可以当做“字符串”,当维度是二维时可以当成是字符串数组,即若干字符串。字符数组的输入除了使用scanf外,还可以使用getchar或者gets;其输出除了使用printf外,还可以使用putchar或者puts。(1)scanf输入,printf输出scanf对字符串的输入有%s和%c两种格式。%c格式用来输入单个字符,它能够识别空格和换行符并将其保存到字

2018-01-30 14:20:56 1390

原创 《C++ Prime》第2章 阅读笔记

2018-01-29 22:05:25 229

原创 《C++ Prime》第2章 阅读笔记

(2018/01/29 20:23)C++基本数据类型分为 算术类型 和 空类型,算数类型又分为 整型(包括字符和布尔类型在内) 和 浮点型。字由4字节或8字节组成。如何选择数据类型:当明确知道熟知不可能为负时,选择无符号类型;使用int执行整数运算;在算术表达式中不要使用char或bool;执行浮点数运算时选用double,因为float精度不够且

2018-01-29 21:36:40 211

原创 STL_导图(C++)

Stl讲解1 泛型程序设计      泛型 =》通用性。在 C++ 中,模板是泛型编程的基础。2体验stl运行流程参考:stl初体验代码3迭代器1.迭代器是一种设计思想。2.用iterator模式访问容器内元素,可以在不暴露容器内部元素的实现的前提下访问容器内的每个元素。3.迭代器和指针的区别:   指针中有地址,可以打印,但迭代器中无地址,不能打印

2018-01-27 22:39:10 358

原创 《C++ Prime》第1章 阅读笔记

main函数的返回值必须为int命令行编译文件:$ cl /EHsc prog1.cpp执行文件:$ prog1.exe 或者 $prog1(用参数 -std=c++0x 来打开对C++11的支持)流(stream):一个流就是一个字符序列,流想要表达的是 字符是顺序生成或消耗的标准库定义了4个IO对象cin 标准

2018-01-26 22:55:30 369

原创 基于STC89C52单片机实现简易计算器

今天,我在Keil uVision4中制作了一个小项目,利用STC29C52单片机实现了简易计算器的功能。 此计算器利用矩阵键盘(线扫描法)输入数据,利用八位数码管显示数据。能实现四位整数(及四位以下)与四位整数(及四位以下)的加减乘除运算。 优势是:操作及界面 与日常计算器相同; 具备按键消抖功能; 缺陷是:计算位数有限; 仅支持整数

2017-07-21 23:50:11 11838 5

转载 计算机软件编程英语词汇集锦

————————————————————Access Control List(ACL) 访问控制列表 access token 访问令牌 account lockout 帐号封锁 account policies 记帐策略 accounts 帐号 adapter 适配器 adaptive speed leveling 自适应速率等级调整 Address Resolution Pro

2017-06-15 21:20:52 4976

转载 希尔排序

原文地址: http://www.cnblogs.com/fzhe/archive/2013/01/25/2871699.html希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 基本思想:     先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在

2017-06-15 21:14:39 255

转载 共享单车上的智能锁,做出来有多难?

最早共享单车运营品牌之一的摩拜单车,传闻仅仅开发其独立自主品牌的单车智能锁就使用了半年时间,那么问题来了,共享单车上的智能锁,做出来有多难?共享单车作为现阶段的资本风口,媒体对共享单车的兴趣和报道渐渐多了起来,有关注的同学可能早早就看过这些文章是这样介绍单车上的智能锁的,“技术实现手段也不难:在电动车锁里加上传感器、GPS、3G网络和芯片……”,事实上真的像众多报道中所描述的如此“简单”吗?单车联

2017-06-15 21:12:02 887

原创 消息队列程序

前面我分享了一篇有关于消息队列的博客, 这里附上我写的一段消息队列的程序: send.c(发送端)#include<sys/types.h>#include<sys/msg.h>#include<sys/ipc.h>#include<stdlib.h>#include<string.h>#include<stdio.h>struct msgbuf{ long mtype;

2017-06-13 00:07:33 534

转载 进程间通信 之 消息队列(Linux)

(转载自http://blog.csdn.net/ljianhui/article/details/10287879)下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,

2017-06-13 00:02:37 353

原创 进程间通信 之 共享内存(Linux)

共享内存共享内存是被多个进程共享的一部分物理内存.共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。 实现共享内存的步骤共享内存实现分为两个步骤: 一、创建共享内存,使用shmget函数; 二、映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数。创建int shmget ( key_t ke

2017-06-12 23:56:15 302

原创 进程间通信 之 pipe(Linux)

管道定义管道是进程间通信的主要手段之一。一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开的文件进行,它们分别代表管道的两端。管道是一种特殊的文件,它不属于某一种文件系统,而是一种独立的文件系统,有其自己的数据结构。根据管道的适用范围将其分为:无名管道和命名管道。管道通信的实现机制实现机制:管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程

2017-06-12 23:31:00 427

原创 txt矩阵

最近在写一个程序, 要求如下: 1.txt文件中有一个m*n的数字矩阵, 2.txt文件中也有一个m*n的数字矩阵, 编写程序, 创建3.txt文件, 使得其中存储一个m*n的矩阵, 矩阵的元素为对应的1.txt与2.txt中元素的和。目前, 写了一段程序, 只能实现1*1的矩阵相加, 正在努力完善程序。 程序如下:#include<stdio.h>#include<string

2017-06-10 00:36:02 1020

转载 睡眠不足大脑将被吃掉

转载自:http://tech.123.com.cn/show/399-41241.html北京时间6月7日消息,据国外媒体报道,目前,科学家最新一项研究表明,当老鼠睡眠不足时,大脑将开始“自噬。”星形胶质细胞就像大脑中的微型胡佛电动吸尘器,当大脑连接变得薄弱和开始分裂时,它们将清除部分神经突触细胞。北京时间6月7日消息,据国外媒体报道,目前,科

2017-06-07 23:11:26 396

转载 程序员实用网站集锦

Best-websites-a-programmer-should-visitSome useful websites for programmers.When learning CS there are some useful sites you must know to get always informed in order to do your technologies eve and le

2017-06-07 23:07:41 1284

转载 Linux 查看CPU信息,机器型号,内存等信息

这些命令非常有用,但是使用度不算太高,收藏起来以便用到时候备查。转载连接:http://my.oschina.net/hunterli/blog/140783 系统 # uname -a # 查看内核/操作系统/CPU信息# lsb_release -a # 查看操作系统版本 (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,

2017-06-07 23:05:35 2155

转载 如何快速转载CSDN中的博客

前言  对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现  因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑

2017-06-07 23:02:37 233

空空如也

空空如也

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

TA关注的人

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