自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++根据广义表(括号表示法)构造二叉树,并分别进行前中后序层次遍历

前中后序遍历是递归形式,层次遍历是非递归形式。代码:#include <iostream>#include <stdlib.h>#include <assert.h>#include <stack>#include <queue>using namespace std;template<class T>stru...

2018-03-11 17:21:47 3404

原创 快速排序C++实现

算法思想:    将一个长度为n(n>0)的数组进行从小到大的顺序排列。快速排序首先需要在该数组中找任意一个元素出来作为比较基准(pivot),这里假设找的pivot为当前数组的最后一个元素,即 arr[n-1],那么接下来在arr[0] - arr[n -2]这个数组中,我要将它们分为2大类(即2个子数组),第一个数组要确保所有元素比pivot要小或者等于pivot,第二个数组中的所有元素...

2018-03-07 16:01:34 635

原创 直接插入排序C++实现

算法思想:    要对元素个数为n(n>=1)的数组进行从小到大的顺序排序,首先可以把第一个元素arr[0]当做是一个初始有序序列,然后从这个有序序列之外的下一个元素开始,分别和其上一个元素进行比较,如果当前元素小于上一个元素,那么就将该元素插入到之前已经有序的序列合适的位置…… 如果你玩过斗地主,以上所有的理论说明你都可以忽略:       你在玩斗地主摸牌并整理的过程实际上就是一个直接插...

2018-03-07 01:19:03 846

原创 冒泡排序C++实现

算法思想:    如果要对具有n个成员的数组进行从小到大的顺序排列,那么从第0个元素开始,让它和第一个元素进行比较,如果arr[0] > arr[1],那么就将arr[0]和arr[1]进行交换,以此类推到arr[n-2](之所以不是arr[n-1]则是因为如果当前元素为arr[n-1],那么arr[n-1+1]就会发生越界),这样总是拿arr[n]和arr[n+1]去作比较,并在满足条件的...

2018-03-06 23:08:12 398

原创 选择排序C++实现

选择排序的思想:    假设要从小到大排序n个数,第一步首先在这n个数中找到最大的那一个数,然后将其和arr[n-1]也就是数组最后一个元素交换,接下来再在0~n-2之间找剩下的元素中最大的,再将其和n-2也就是倒数第一个位置的元素交换,以此类推。   选择排序的时间复杂度最好的情况是O(n^2) ,平均时间也是 O(n^2),最坏时间也是O(n^2),它是一个不稳定的排序算法。    可以看做是...

2018-03-06 22:49:38 559

原创 从0在windows上一次性上传本地整个项目(包含所有文件/文件夹)到 Github

1.注册并登陆Github。2.登陆进去之后的页面,点击这个“库”,这表示你在Github上上的代码仓库,我这里已经创建过一个了,所以数量是13.在仓库选项卡中,点击“新建”按钮添加一个项目。4.为了不废话我就翻译成了中文页面,这里填写好项目的信息。如果你想开源但不知道该选择什么样的许可证,请参考下面的图:5.创建好项目之后,在项目界面点击右边的“克隆或下载”,复制这个URL,待会会用到。6.下载...

2018-02-26 10:40:32 2648

原创 C++模板实现Array

浅显易懂,没啥好解释的。代码如下:#include <iostream>#include <algorithm>#include <stdlib.h>#include <assert.h>using namespace std;typedef unsigned int UINT;template<class T>class ...

2018-02-25 17:02:22 639

原创 超大数字乘法问题(c++)

问题描述:    用C++实现2个大数相乘。算法思路:    用指定len的2个整型数组代表2个大数,设乘数为A,被乘数为B,保存结果的数组为buffer,可得buffer的元素总数为A.len + B.len。逆序循环遍历A(从个位到首位),在每次循环体中,取A的一位数与B的每一位数相乘,并且每次乘积都保存到buffer指定位置上(当前拿的A的哪一位,结果的保存就从buffer的哪一位开始保存)...

2018-02-24 21:12:46 1206

原创 Z字型编排问题(C++)

问题:给定一个二维原数组,输出该数组矩阵进行Z字形编排后的内容。原二维数组示例:输出示例:算法描述:个人思路:    可以利用“走迷宫”算法的思路,先把所有可以移动的方向枚举出来,如下:enum WAY{ RIGHT, BOTTOM, LEFTBOTTOM, RIGHTTOP, NONE} nextWay;  然后利用状态机思想,在循环遍历原数组的内循环中,switch case一下当...

2018-02-24 11:48:20 1036

原创 C++11并发编程-01(线程的启动、传参)

启动一个线程#include <iostream>#include <thread>int main(){ std::cout << "thread starting..." << std::endl; std::thread myThread([]{ std::cout<<"this is a new thread!"<< std::endl; });

2017-09-11 09:38:53 369

原创 C++ / QT 对象序列化(Object Serialization)的实现

对象序列化,简单地讲就是把程序运行时保存在内存中的某个对象,整个抽取出来,从而可以实现将这个对象进行持久性保存(如普通文件存储、数据库),或者网络传输。今天在一个QT项目上刚好有这样的一个需求,网上也看了一些资料,主要的思想就是就是利用QDataStream,重载其<< 和 >> 操作符实现(虽然重载的原因是因为 QDataStream << 和 >> 操作符只支持C++内置的基本数据类型,但我觉得

2017-02-26 20:56:52 8738 3

原创 自制操作系统——02(读磁盘数据到内存)

boot.asm代码:[org 0x7c00]KERNEl_ADDR equ 0x820;数据要加载到0x8200:0000处(姑且当作是内核)mov bx,LOADING_STRcall print_str;输出loading...字符串,bx是字符串地址参数mov ah,0x02;2h代表读盘mov al,1;读一个扇区mov ch,0;0柱面mov dh,0;0磁头mov cl,

2016-09-13 16:07:07 1010

原创 自制操作系统——01(Hello,world!)

boot.asm 程序代码:org 0x7c00;加载本程序至内存0x7c00处,如果省略,那么标号后面必须手动加上0x7c00mov bp,szBuffer;将标号地址赋值给bpmov ah,0x0e;显示字符(ah值的选择可参考BIOS int 10h参数表)mov cx,12;这里显示12个字符mov bx,0h;初始化计数器bx为0print_str:mov bp,szBuffe

2016-09-13 00:28:22 470

原创 Ubuntu14.04添加鼠标右键new_empty_file菜单

执行命令: sudo apt-get install python3-gi python-nautilus mkdir -p ~/.local/share/nautilus-python/extensions gedit ~/.local/share/nautilus-python/extensions/nautilus-acme.py 然后,复制下面的内容到这个python文件中from

2016-06-30 18:14:12 863

原创 可引导MBR的利用

起始地址: Org 0x7c5a 因为程序真正的位置在rufus的加载程序的5a偏移地址处,可以理解为rufus的loader在0x7c00,所以我们的程序在0x7c5a。 5ah=90 程序结尾处也变成了 510-90-(−-$) 第一步,Rufus格式化U盘: 然后把U盘的前2060扇区的数据导出: 接下来把usb.data中的第0x1be字节的数据改成80,表明改

2016-06-28 00:27:39 480

原创 Cocos2dx/NDK .a静态库的制作与使用

网上这块详细可用的资料缺乏,故写上此文。实验目的:把mylib.a 中的 myfunc 暴露给其它源程序调用。1. 如何制作cocos2d/NDK可用的.a静态库?整个制作流程最好分2个目录来进行: 1. 新建一个 mylibsrc 目录用来存放源码并将其编译成.a静态链接库。 2. 再建一个 mylib 目录把编译好的.a文件打包成可让其它程序调用的模块。

2016-06-08 13:37:34 1075 2

原创 QT 操作MySQL

QSqlDatabase con=QSqlDatabase::addDatabase("QMYSQL"); con.setHostName("127.0.0.1"); con.setDatabaseName("stumgr"); con.setUserName("root"); con.setPassword("password"); if(!co

2016-01-02 22:47:16 450

原创 QT读取网络图片

QUrl url("http://pic.baike.soso.com/p/20090711/bki-20090711100323-24213954.jpg"); QNetworkAccessManager manager; QEventLoop loop; // qDebug() "Reading picture form " url

2016-01-02 22:44:55 1004

原创 计算机中的信息表示(原码、反码、补码、ASCII码)

我们知道,不管是数字还是字符,在计算机中,都是以二进制编码形式

2014-10-29 21:51:19 4847 1

原创 GDI基础小记1--获取设备环境句柄

GDI(Graphics Device Interface 图形设备接口)主要用于 系统与需要进行图形输出的程序

2014-10-28 19:21:54 759

原创 通俗了解字符编码

首先,我先在这浅谈一下多字节字符

2014-08-28 21:07:29 688

原创 王爽-《汇编语言2》笔记3

8086CPU有4个  段 寄存器:CS、DS、SS、ES.

2014-07-18 22:49:06 484

转载 hello-os注释

;hello-os注释;TAB=4ORG OX 7c00;指明程序的装载地址,ORG指令,意思是文件开始执行的时候,把这些机器语言装载到内存那个地址。其次是7c00这个位置,再内存中Ox00007c00-Ox00007cff这段位置表示的意思是启动区内容的装载地址。;以下是该软盘(标准格式FAT12)的专用代码(都是规定死了的东西,就别改了);这个区的大小为JMP en

2014-07-18 15:49:35 688

原创 王爽-《汇编语言2》学习笔记2

8086CPU的14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、

2014-07-18 14:31:01 602

原创 王爽-《汇编语言2》学习笔记1

汇编由3类指令组成:   1.汇编指令:机器码的

2014-07-18 13:45:01 545

转载 0x7c00引导地址详解

0x7C00是BIOS加载MBR到内存时的起始地址,操作系统或者引导程序必须假设它们的汇编代码从内存的0x7C00地址开始。这时 你可能会想:1.我阅读了intel x86(32位机)程序手册,但是却并没有看到任何关于0x7C00的信息。0x7C00 与x86的cpu没有关系,自然你不能再intel的程序手册中找到其相关信息。2.0x7C00=31KB,这个地址的意

2014-07-18 13:26:44 1759

北京大学-动态规划-讲解PDF

非常好的关于DP“动态规划”的文档,讲得非常通俗易懂,并且让你掌握DP设计及转换思路,非常好理解。

2018-03-11

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

TA关注的人

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