- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 给定两个输入文本,找出它们共有的最长字符串
给定两个输入文本,找出它们共有的最长字符串//求两字符串的最长公共子串 #includestdio.h> #includestring.h> char * maxsamesubstring(char *s1,char *s2) { int i,j,len,maxlen,index,maxindex; m
2012-08-30 16:20:56 1480
原创 堆排序算法
堆排序算法1.堆排序是利用堆的特性对记录序列进行排序的一种排序方法。好的那么堆得特性是什么呢?堆得定义:堆是满足下列性质的数列{r1, r2, …,rn}: 如下图最开始是一个小顶堆。当把97和13 交换后不是堆了,所以我们要调整根节点使之成为堆即筛选。(注意:是自堆顶到叶子的筛选过程,应该刚开始是堆由于把堆顶给换了,罪魁祸首是堆顶,其它小范围还是堆,所以是
2012-08-29 21:04:06 1024
原创 线性时间内从一个数组中找出第K个最小的元素——编程珠玑
线性时间内从一个数组中找出第K个最小的元素——编程珠玑题目:编写程序,在O(n)时间内从数组x[0...n-1]中找出第k个最小的元素,算法中可以对x中的元素进行排序。思路:快速排序选择一个pivot对数组进行划分,左边小于pivot,右边大于等于pivot,所以我们计算左边小于pivot(加上pivot)的个数count总共有多少,如果等于k,正是我们所要的,如果大于k,说明
2012-08-28 16:27:12 4704 1
原创 插入排序和快速排序的优化——编程珠玑
插入排序和快速排序的优化——编程珠玑1.插入排序方法一:#include [html] view plaincopyfor(int i=1;i5;i++) t j=i;j>0&&a[j-1]>a[j];j--) swap(a[j-1],a[j
2012-08-27 22:08:37 1316
原创 字符串旋转问题——来自编程珠玑
字符串旋转问题——来自编程珠玑 在编程珠玑这本书中对于字符串旋转有个很好的方法.思想是这样的:一个字符串如果要从中间某个位置进行旋转,例如对于字符串abcdefghijk,要从第四个位置(也就是d)进行旋转,得到defghijkabc。算法可以这样做:对abc求逆,得到cba,再对defghijk进行求逆得到kjihgfed,最后对cbakjihgfed整体进行求逆,就可以得到defg
2012-08-18 21:22:21 1101
原创 快速计算整数的二进制表示法中1的个数
快速计算整数的二进制表示法中1的个数题目:给定一个无符号的32位整数x,求x的二进制表示法中含1的个数?第一种算法:(采用整形数据除法)测试程序如下:#includeusing namespace std;int count(unsigned int x){ int num=0; while(x) { if(x%2==1){
2012-08-18 16:32:32 1513
转载 【编程珠玑】代码优化的27条经典法则
【编程珠玑】代码优化的27条经典法则我觉得这篇文章写得很好,总结性比较强,对于代码优化方面非常有帮助!!1. 空间换时间法则 1.1修改数据结构 例如:计算球面距离:输入为球面上5000个点组成的集合S,再输入20000个点组成的序列,每个点实用经度和纬度表示,对于20000个点的序列,程序必须求出S中哪个点最接近它,距离使用
2012-08-17 11:36:30 2288
原创 算法设计艺术——编程珠玑第八章
算法设计艺术——编程珠玑第八章 下面是书本中讲解的四个算法: 问题:求一维数组中连续子向量的最大和。 例如:a[6]={3,4,-2,-9,10,8}; 则最大连续子向量的和 为 10+8 = 18 1)解法一:简单算法[html] view plaincopy#incl
2012-08-17 11:00:04 1151
原创 在二分搜索应用于未排序的数组时加入部分检测程序—编程珠玑第五章习题5
在二分搜索应用于未排序的数组时加入部分检测程序—编程珠玑第五章习题5 大家都知道二分搜索算法应该用在已经排序好的数组中,但是有时候会犯一些错误,一个常见的错误就是把二分搜索应用于未排序的数组,而在每次搜索前检测整个数组是否有序需要进行n-1次额外的比较。 1.测试,断言优化问题 可以加入:
2012-08-16 16:43:17 2955 1
原创 c++二分查找—来自编程珠玑
c++二分查找—来自编程珠玑二分查找法(Binary search algorithm)是一个很常见的算法,从<编程珠玑>里再次看到时又有新的收获。 直接看代码吧,下面是常见的实现代码: int binary_search(int *a, int num, int t){ int start = 0, end = num - 1; whi
2012-08-15 21:16:39 1462
原创 编程珠玑第三章习题5——英语中的连字符问题
编程珠玑第三章习题5——英语中的连字符问题问题:本问题将处理一小部分用连字符连接的英语单词方面的问题。下面的规则列表描述了一些以字母c结尾的单词的有效连字符连接:et-ic al-is-tic s-tic p-tic -lyt-ic ot-ic an-tic n-tic c-tic at-ic h-nic n-ic m-ic l-lic b-lic -clic l-ic h-ic f-
2012-08-15 19:14:57 1728 1
原创 编写一个"banner"函数,该函数的输入为大写字母
编写一个"banner"函数,该函数的输入为大写字母 题目:编写一个"banner"函数,该函数的输入为大写字母,输出为一个字符数组,该数组以图像化的方式表示该字母。《编程珠玑》上提到当要输入的数据很多,且没有规律时,可以考虑编写一个格式信函发生器(form letter generator)用于解析格式信函模板(form letter schema)。将数据从控制
2012-08-14 19:55:01 2612
原创 在Ubuntu上下载Android源代码的完整步骤
在Ubuntu上下载Android源代码的完整步骤一.环境准备 1.磁盘空间预留20G左右,内存就按照主机来算,1G就差不多了,如果再少的话机子就会很卡了。 2.安装Vmware8版本,我的操作系统是Winxp,VMWare的版本要新一点的,旧版本的VMWare在网络支持上比较差,由于要在虚拟机上下载Android源代码,没有网络是万万不行的。 3.安装好VMWa
2012-08-13 09:17:10 1698
原创 Android开发环境的搭建
Android开发环境的搭建 在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld。本文的主题如下:1、环境搭建1.1、JDK安装1.2、Eclipse安装1.3、Android SDK安装1.4、ADT安装1.5、创建AVD2、HelloWorld1、环境搭建1.1、JDK安装如果你还没有JDK的话,可以去这里下载,
2012-08-06 10:30:15 799
原创 Android学习启动
Android学习启动 今天是2012年8月5日,正值实验室放假2个星期左右时间,可以好好静下心来思考思考。 一直以来,我就特别喜欢Android,源于本科的时候做过一个很小的项目,从那以后就喜欢了,由于后来的一些事情没有再搞过Android了,比较遗憾。 现在Android非常火,我学习它并不是为了以后就从事这份工作,而是兴趣使然,并且Androi
2012-08-05 17:37:57 903
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人