自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基础算法-全排列

无去重全排列对于某个元素作为开头的序列,如果知道了它右边的元素的全排列,就知道了以它开头的全排列如果序列后面的元素都跟第一个元素交换位置,就知道了每个元素开头的全排列,也就知道了整个序列的全排列。 public static void permutation1(int a[],int k,int n){ if(k>=n){ for(int i=0;i<n;i+

2017-02-24 17:13:48 314

原创 基础算法-希尔排序

直接插入排序直接插入排序就跟整理扑克牌一样,每次把一张新的牌插入到已经排好序的牌的合适的位置中。数组中排序的时候要将之前位置上的数字全部右移动一个位置,空出来的位置再来放要插入的数字。可以一次性全部右移动一个位置,也可以这样,因为要插入的数字在已经排序的区间的右边如果要插入的数字左边的数字比要插入的数字大,那么就跟左边的数字交换位置,这样如果到了左边位置的数字小于等于它的时候说明它已经到了正确的位置

2017-02-23 22:21:30 297

原创 面试题-100万个数据前100大的数据

先取出前100个数,维护一个100个数的最小堆,遍历一遍剩余的元素,在此过程中维护堆就可以了。具体步骤如下: step1:取前m个元素(例如m=100),建立一个小顶堆。保持一个小顶堆得性质的步骤,运行时间为O(lgm);建立一个小顶堆运行时间为m*O(lgm)=O(m lgm); step2:顺序读取后续元素,直到结束。每次读取一个元素,如果该元素比堆顶元素小,直接丢弃 如果大于堆顶元素,则用该元

2017-02-23 21:48:50 4409

原创 基础算法-归并排序

归并排序思想:如果需要排序的数组分为两个部分,左边是有序的,右边也是有序的(都是升序或者都是降序),那么将两个区间合并为有序的只需要o(n)的复杂度就可以完成。那么如果这两个区域不是有序的呢,可以递归的调用归并排序,直到区间的元素只有一个元素,那么这个区间就是有序的,回到上一层调用,左右两个区间已经有序的情况下,把它们合并在一起,那么这一层就有序了。直到回到了第一层,那么整个数组就有序了。publ

2017-02-23 19:43:05 331

原创 基础算法-快速排序

快速排序选择一个基准值x,把比x小的全部放在左边,把大于等于x的值放在右边,然后把x放到这个边界.这样,如果左边是升序的,那么因为x比左边的都大,左边区间加上x 的这个区间同样是升序的,如果此时右边也是升序的,那么因为x的值小于等于右边的值,则整个数组是升序的而每个区间的排序,可以递归调用快速排序完成,如果区间只有一个值就不用排序了。public class QuickSort { publi

2017-02-23 19:05:16 309

原创 基础算法-堆排序

堆:任意节点的值大于(小于)左右子节点的值,子节点也为堆。 如果对于存储在数组里的堆的话, 节点下标为 j, 它左子节点下标为 2*j+1, 右子节点下标为 2*j+2;堆排序(升序):调整堆:如果节点的左子节点与右子节点都已经是大根堆,调节该节点也为大根堆.如果该节点的左右子节点的值都小于该节点,结束。(已经是大根堆)选定一个最大的子节点 j,将当前根节点的值与最大子节点 p 的值交换,这样,a

2017-02-23 18:25:03 253

原创 Java 对称加密

对称加密public class SecretRSA { /** * 生成秘钥对 * @param privateKeyFilePath 私钥保存的路径 * @param publicKeyFilePath 公钥保存的路径 */ public static void gene

2017-02-21 11:41:58 394

原创 手动打包apk

用的是 android studio 创建了一个工程,然后手动在命令行打包,进入工程里的cd ~/Desktop/DexTest/app/src/mainmkdir genmkdir buildmkdir outsdk 22.以后删除了 apkbuilder,可以在sdk 的 tools 目录里执行:cat android | sed -e 's/com.android.sdkmanager.

2017-02-19 14:19:27 2037

原创 汇编 org

看了几篇博客不知道 org 到底有什么用,实际测试下就了解了~x.asmstart: mov ax ,labellabel: nop nasm x.asm -o x b804 0090 ndisasm -o 0x0 x > dx.asm00000000 B80400 mov ax,0x400000003 90 nopy.as

2017-02-07 15:50:53 2330

原创 写文件到 .img

FAT12.h/* FAT12.h 操作 FAT12 文件系统的镜像文件的库函数申明 四彩 2015-12-08*/#ifndef _FAT12_H#define _FAT12_H#ifdef WINDOWS #define SEPARATOR '\\' // Windows 系统下的分隔符#else #defi

2017-02-05 23:28:23 1943

原创 mac 安装 bochs

mac 安装 bochsbochs下载地址0x01 安装SDL库在http://www.libsdl.org安装,或者使用Homebrew来进行安装。Homebrew的安装命令brew install sdl。0x02 Configure Bochs简单的解压命令tar -xvf bochs-2.6.tar.gz后,Configure需要的参数:./configure --enable-ne2000

2017-02-04 18:10:03 2857

空空如也

空空如也

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

TA关注的人

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