自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hashtable实现 -- 参考leveldb hashtable

1. hashtable.h#ifndef HASHTABLE_H #define HASHTABLE_H #include #include #include #include struct Handle { std::s

2015-10-16 11:40:43 619

原创 移位验证小工具

#include #include #include void usage(char **argv);int main(int argc, char** argv) { int opt = 0; int left = 0; while ((opt = getopt(argc, argv, "hl:")) != -1) { switch(opt) {

2015-10-15 12:16:54 587

原创 UNIX STDOUT_FILENO验证

写了如下代码来验证STDOUT_FILENO代码biao

2015-09-13 23:30:31 369

原创 32位固定编码实现--leveldb

最近在看leveldb的源代码,其中32位固定编码实现如下以及验证程序如下:#include #include #include #include #define kLittleEndian falsevoid EncodeFixed32(char* buf, uint32_t value) { if (kLittleEndian) { memcpy(buf, &val

2015-09-09 16:47:21 533

原创 八皇后问题--回溯法

八皇后问题,用回溯法解决:

2014-10-03 21:51:01 336

原创 算法导论--二叉查找树--C++实现

#ifndef BSTREE_H#define BSTREE_Htypedef struct Node{ int key; Node *p; Node *left; Node *right;}Node;class BSTree{public: Node *root; BSTree():root(0){} Node *minimum(Node *p); Node *maxi

2014-10-03 21:30:50 321

原创 和迷宫类似的问题

package edu.whu.cs;import java.util.Scanner;public class Solution {public static boolean DFS(char arr[][],boolean visited[][],int row,int column,int x,int y){//if(x>=row||y>=colu

2014-09-15 16:55:33 350

原创 算法--螺旋队列代码实现

最近看了有个螺旋队列的问题,

2014-04-20 16:24:44 566

原创 全排列--递归算法实现

代码如下:void swap(int *x,int *y){ int temp=*x; *x=*y; *y=temp;}void perm(int *arr,int start,int end){ if(start==end){ for(int i=0;i<=end;i++) printf("%d",arr[i]); printf("\n"); } for(in

2014-03-30 15:32:43 362

原创 全排列算法--一种非递归算法的实现

代码如下:void reverse(char *arr,int start,int end){ while(start<end){ char temp=arr[start]; arr[start]=arr[end]; arr[end]=temp; start++,end--; }}void swap(char *arr,int i,int j){ char temp

2014-03-28 16:58:00 393

原创 程序猿的《那一夜》

程序猿的《那一夜》         钛合金内部公测版 版本号0.01  内部版本6832.12这不是偶然,也不是必然,这是上天对程序的安排!不相信BUG,不相信断点,只是坚信科学的算法!我应该如何? 如何得到应得的结果,我应该怎样? 怎样才能写正确的算法.我想呀想  试呀试!希望得到我的结果,我修呀修,改呀改,再次浮出我的黑眼圈——那一夜,B

2014-03-08 09:56:50 406

原创 编程之美--求数组的子数组之和的最大值--扩展问题

问题一,如书中提示的那样,对于情形二就是求数组的子数组之和的最小值,实现代码如下:int spanSum(int *arr,int length){ int start=arr[length-1]; int all=arr[length-1]; int sum=all; for(int i=length-2;i>=0;i--){ sum+=arr[i]; if(start>0)

2014-01-16 14:34:55 469

原创 求数组的子数组之和的最小值

本质上与“求数组的子数组之和的最大值”是相同的,只需对求最大值的算法做些修改即可.这里给出一种方法,代码如下:int minSum(int *arr,int length){ int start=arr[length-1]; int all=arr[length-1]; for(int i=length-2;i>=0;i--){ if(start>0) start=0; sta

2014-01-15 20:48:23 488

原创 编程之美--求数组的子数组之和的最大值

方法一 枚举法,代码如下:int maxSum(int *arr,int length){ int maxSum=arr[0],curSum=0; for(int i=0;i<length;i++){ for(int j=0;j<length;j++){ curSum=arr[i]; for(int k=i+1;k<=j;k++) curSum+=arr[k];

2014-01-15 20:45:10 420

原创 编程之美--子数组的最大乘积

方法一 枚举法,代码如下://求子数组的最大乘积int maxProduct(int *arr,int length){ int max=1,flag=0; //初始化最大值 for(int i=1;i<length;i++) max*=arr[i]; //遍历查找乘积最大的 for(int i=1;i<length;i++){ int product=1; for(int

2014-01-14 15:24:10 461

原创 编程之美--寻找最大的K个数

方法一.先排序然后找出最大的K个数,这里选择快速排序,代码如下:int partition(int *arr,int low,int high){ int key=arr[low]; while(low<high){ while(low=key)high--; arr[low]=arr[high]; while(low<high&&arr[low]<=key)low++;

2014-01-12 11:38:09 400

原创 算法--写一个函数检查字符是否是整数,如果是返回其整数值

基础知识补充,对于一个给定的数字字符x,比如x=‘6’,如何求x所对应的数字6呢?我们知道计算机存储字符实际上存储的是其ASCII码,对于字符x=‘6’实际上存储的是ASCII码54,字符‘0’是48,‘1’是49.这样以来,对于任意一个数字字符x我们可以通过x-'0'的方式来求救其对于的数字值.     下面分析一下如何求解字符串对于的数值.不失一般性,我们不妨以str="9652"作为例子

2014-01-10 16:38:38 870

原创 算法--选择第K大的数

算法基本思想是对输入的数组进行递归划分,这样得到一个中轴元素pivot,左边数组内的数都小于等于中轴元素pivot,右边的数组都大于等于pivot,然后考察右边边数组加上中轴元素的个数x,若个数x==k,则返回pivot;若x>k,则说明第K大元素在右边数组并且是第k大元素,继续递归查找;若xint random(int x,int y){ if(x>y) return random(y,x

2014-01-10 11:02:27 818

原创 算法--选择第K小的数

算法基本思想是对输入的数组进行递归划分,这样得到一个中轴元素pivot,左边数组内的数都小于等于中轴元素pivot,右边的数组都大于等于pivot,然后考察左边数组加上中轴元素的个数x,若个数x==k,则返回pivot;若x>k,则说明第K小元素在左边数组并且是第k小元素,继续递归查找;若xprivate int rand(int x,int y){ if(x>y) return

2014-01-10 10:26:08 1078

原创 C语言--随机数函数的使用

C语言随机数函数的使用如下:#include#include#include int random(int x,int y){ if(x>y) return random(y,x); srand((unsigned int) time(0)); return rand()%(y-x+1)+x;}一定注意别忘了头文件的引用。

2014-01-09 18:46:02 684

原创 编程之美--数组循环移位

解法一  每次移动移位,然后循环调用K次:void shift(int *A,int n,int k){ for(int i=0;i<k;i++){ int last=A[n-1]; for(int j=n-1;j<0;j--) A[j]=A[j-1]; A[0]=last; }}解法二  优化循环次数,即求K对n的余数:void shift(int *A,int

2014-01-09 17:02:22 498

原创 算法--求数组中的最大和最小值

优化后的求最大和最小值的代码如下:int *minMax(int *A,int n){ int min,max,i; if(n&0x01){ min=max=A[0],i=1; }else{ if(A[0]<A[1]) min=A[0],max=A[1]; else min=A[1],max=A[0]; i=2; } for(;i<n-1;i+=2){

2014-01-09 16:48:30 895

原创 编程之美--”求二进制数中1的个数问题“深入研究--汉明重量(Hamming weight)

最近又看了这个问题,其实这是一个在信息论、密码学以及信息安全中非常重要的知识---汉明重量(Hamming weight).对于这个问题维基百科上有明确详细的解释和定义,并给出了高效的实现方法.记得看在编程之美中看到这个问题的时候,感觉那四种方法就很厉害了,想不到其实那都是相对简单的方法,真正高效的方法还在后面!方法一   移位、与和相加基本思想就是每两位相加把和存入这两位中,然后以每两位

2014-01-08 16:51:42 820

原创 编程之美--最大公约数问题--递归和非递归

编程之美中的最大公约数问题,下面通过代码依次实现之.解法一、欧几里得的辗转相除法int gcd(int x,int y){ return (!y)?x:gcd(y,x%y);}解法二、辗转相减法int gcd(int x,int y){ if(x<y) return gcd(y,x); return (!y)?x:gcd(y,x-y);}解法三、改进的使用移位缩小空间的算

2014-01-07 15:10:38 673

原创 排序--堆排序的基本思想及其代码实现

堆有两种:最大堆和最小堆(小根堆).在这两种堆中,结点内的数值都要满足堆特性,其细节则视堆的种类而定.  在最大堆中,最大堆特性是指除了跟以外的每个结点i,有        A[parent(i)]>=A[i]即某个结点的值至多是和其父结点的值一样大.这样,堆中的最大元素就存放在根节点中;并且,在以某个结点为根的子树中,各结点的值都不大于该子树根结点的值。一、保持最大堆的性质的代码

2014-01-07 13:17:59 599

原创 排序--简单选择排序思想及其代码实现

简单选择排序的基本思想是:每一趟在n-i+1个记录中选取关键字最小的记录作为有序序列的中第i个记录,其代码实现如下:void selectSort(int *A,int n){ for(int i=0;i<n-1;i++){ int index=i; for(int j=i+1;j<n;j++){ if(A[j]<A[index]) index=j; } if(

2014-01-07 13:06:11 443

原创 排序--计数排序思想及其代码实现

计数排序是一种很有意思的排序,但是其输入数据有严格的要求,其一每个元素都必须是整数,其二每个元素需是大于或等于0的整数,其代码实现如下:void countingSort(int *A,int n,int k){ int *C=new int[k+1]; int *B=new int[n]; for(int i=0;i<=k;i++) C[i]=0; for(int i=0;i<n

2014-01-06 20:42:22 455

原创 排序--快速排序算法的思想及其代码实现

快速排序算法是交换排序的一种,其思想就是以数组中的某一元素作为轴元素,以轴元素为准将数组分成两组,其中一组全部小于等于该元素,另一组则大于等于该元素。然后再对两组元素进行递归调用,其主要过程就是分割数组,其代码如下:int partition(int *A,int low,int high){ while(low<high){ while(low=A[low])high--; //e

2014-01-06 20:02:56 438

原创 排序--归并算法思想及其代码实现

调试了一下午时间才把问题搞定,真是“事非经过不知难”void merge(int *A,int *B,int s,int m,int e){ int k=s,t=m+1; while(s<=m&&t<=e){ if(A[s]<A[t]){ B[k++]=A[s++]; }else{ B[k++]=A[t++]; } } while(s<=m) B[k++]=

2014-01-06 18:31:48 359

原创 排序--冒泡排序的基本思想及其代码实现

冒泡排序是一种简单的交换排序,其基本思想是第一个记录与第二个记录相比较,若大于则交换,然后用第二个记录与第三个记录比较,若大于则交换,直到第n-1个和第n个比较完毕,则最大的记录一定在第n个上。这个过程称为一趟冒泡排序,下一趟对第一个到第n-1个进行冒泡排序,原因很显然第n个记录在第一趟排序中已经确定是最大的,无需再变动。其代码实现如下:void sort(int *A,int n){ fo

2014-01-06 13:30:21 804

原创 排序--直接插入排序思想及代码实现

直接插入排序的基本思想是将一个记录插入到已排好序的有序表中从而得到一个新的记录数增一的有序表,代码实现如下:void insertSort(int *A,int n){ int i,j; for(i=1;i<n;i++){ int key=A[i]; for(j=i-1;j>=0 && key<A[j] ; j--){ A[j+1]=A[j]; } A[j+1]=ke

2014-01-06 12:48:25 461

原创 编程之美--求数组中最长递增子序列

首先给出我最初看到这个题目时想到的方法:为方便说明问题,现给出书中的示例数组 A[]={1,-1,2,-3,4,-5,6,-7};最初的想法是遍历每一个元素A[i],求出以A[i]为开始元素的递增子序列的长度curLen,然后求出curLen的最大值即为数组A[]的最长递增子序列的长度.现在问题转化为如何求解以A[i]为开始元素的递增子序列的长度len[i]?我们可以试着找一些感觉,对于第一个元素

2014-01-04 20:08:07 420

原创 编程之美--寻找发帖“水王”的扩张问题--代码实现

编程之美中寻找发帖“水王”一节的扩展问题:随着Tango的发展,管理员发现“超级水王”没有了。统计结果表明,有3个发帖很多的ID,他们的发帖数目都超过了帖子总数目N的1/4。如何从发帖ID列表中快速找到他们的ID?具体的代码实现如下(思想和原问题相同):int *findID(int *ID,int n){ int candidate[3]; int nTimes[3]={0};

2014-01-02 19:41:45 768

原创 编程之美--寻找发帖“水王”--代码实现

感觉编程之美中寻找发帖“水王”一节比较有意思,遂编码实现了,代码如下:int find(double ID[],int n){ int candidate; int nTimes,i; for(i=nTimes=0;i<n;i++) { if(nTimes==0){ candidate=ID[i],nTimes=1; }else{ if(candidate==ID[i

2014-01-02 17:12:05 425

原创 Java压缩目录的简单实现

用java写了一个压缩目录的简单工具程序,代码如下:package edu.whu.cs;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFou

2013-12-29 17:56:16 503

原创 求二进制数中1的个数--Java实现

在编程之美中看到“求二进制数中1的个数”这个问题,读来很受启发遂用Java语言实现相关的方法,写此文章以记之。方法一:用除和求余,代码如下public int count(byte v){ int num=0; while(v!=0){ if(v%2==1) num++; v/=2; } return num; }方法二:用“与”操作和移位,代码如

2013-12-06 13:00:51 509

原创 用KendoUI实现下来列表的级联

最近在学习KendoUI,花了半天的时间才把下拉列表的级联功能实现,以此文章记之。具体代码如下:function provinceChange() { var cityBox = $("#city").data("kendoComboBox"); cityBox.dataSource.read(); cityBox.text("全部"); var c

2013-12-03 18:11:27 1043

原创 在Spring框架中获取服务器绝对路径

在web应用程序中经常需要获取服务器的绝对路径,通过实现Spring的相关接口可以满足这一要求.其工具类的代码如下:package org.sklse.jz.util;import java.io.FileNotFoundException;import javax.servlet.ServletContext;import org.springframework.web.co

2013-12-02 20:27:50 1687

原创 使用CXF框架发布SOAP格式的webservice

使用apache基金开发的CXF框架发布webservice非常简单方便,而且支持SOAP和REST格式的服务。第一步:到apache官方网站上下载最新的版的CXF的框架,到目前最新的版本为2.7.7,下载地址为http://cxf.apache.org/download.html.解压后lib目录的jar包如下图所示:第二步:新建web项目将所有jar包复制到WEB-INF/li

2013-11-26 16:53:13 934

原创 spring和log4j在web环境中的配置 spring3.2.5 log4j1.2.17

spring框架在J2EE在开发中起到越来越重要的作用,学习spring框架在web中的配置是实践环节中的第一步,其重要性不言而喻。首先到spring官方网站上下载发布包,解压后的jar包如下图所示:然后到apache官方网站上下载1.2.x版本的log4j,下载地址点击下载,所有jar包准备好后就可以正式开始了。第一步:用eclipse或Myeclipse新建web工程,把所

2013-11-26 16:24:46 1256

spring 3.2

spring-framework 3.2的所有类库,希望可以帮到大家。

2013-09-12

高等数学教师专用课件

这是一个高等数学的教师专用课件,非常适合同学们学习交流之用;一个非常好的数学资料。。。。

2010-03-22

空空如也

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

TA关注的人

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