2012年8月20日

求数组中连续子数组的最大和

摘要: 问题: 求解数组中连续一段子数组和的最大值。例如:{31,-41,59,26,-53,58,97,-93,-23,84},最大值为59+26-53+58+97=187思路: 计算出任意i到j之间连续子数组的和再比较必然能得到最大值,但时间复杂度为O(n^2),我们希望能找出线性时间的算法。 我们注意到,假如数组中全为正数,那么最大和必然为全部数相加;如果数组中有负数,并且如果加上某个负数,子数组的和小于0,则最大和子数组必然不包含这个负数。 基于此,给出以下代码: //计算数组中任何连续子数组的最大和#include <stdio.h>int getMaxValue(int dat 阅读全文

posted @ 2012-08-20 21:13 好坏 阅读(3853) 评论(3) 推荐(0) 编辑

2012年8月10日

在GridView中添加按钮后,如何触发按钮的各种事件?

摘要: 1.在GridView的“编辑列”属性窗口中,增加新的Botton列。2.然后再该窗口右边属性中,将外观项下的ButtonType设置一下,设置项有:如:Link、Button、Image。3.属性设置完成后,在右边属性列表窗口的下方有这样一行超链接蓝字:“将此字段转换为TemplateField”,单击这个超链接,把该列插入进来的字段转换为模版。//添加了一个删除控件,并将其转换为模版后的代码,该控件还和在GridView所在行的主键进行绑定,把主键作为参数带到该控件的各个事件函数中。<asp:TemplateField ShowHeader="False" Hea 阅读全文

posted @ 2012-08-10 21:36 好坏 阅读(14978) 评论(1) 推荐(1) 编辑

GridView的模版列中加入按钮,触发按钮事件后,如何获取该行的某个值?

摘要: <asp:TemplateField><ItemTemplate><asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="Button"/></ItemTemplate></asp:TemplateField>=============================================protectedvoidButton1_Click(objectsender,Ev 阅读全文

posted @ 2012-08-10 21:35 好坏 阅读(4232) 评论(0) 推荐(0) 编辑

简单工厂模式、工厂方法模式和抽象工厂模式的区别

摘要: 工厂模式是最重要的模式,因为大多数模式都需要用到工厂模式。如果不能正确的运用工厂模式,那么可以说无法成为合格的架构师。 多数设计模式的内容讲解的都是如何设计接口。接口如何产生呢?如果在客户代码(类库的使用者称之为客户)中直接使用具体类,那么就失去了接口的意义。因为接口的使用目的,就是要降低客户对具体类的依赖程度。如果在客户代码中直接使用接口,那么就造成了客户对具体类名称的依赖。(客户最终需要以某种方式指明所需要的具体类,如配置文件或代码,但是只需要指出一次,所以说降低对具体类的依赖程度)。要使客户代码不依赖具体类,唯一的方法,就是让客户代码不依赖具体类的部分不知道具体类的名称。知道具... 阅读全文

posted @ 2012-08-10 21:29 好坏 阅读(7707) 评论(0) 推荐(6) 编辑

浅析设计模式系列之三--工厂方法模式

摘要: 基本简介 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。工厂方法模式的对简单工厂模式进行了抽象。有一个抽象的Factory类(可以是抽象类和接口),这个类将不在负责具体的产品生产,而是只制定一些规范,具体的生产工作由其子类去.. 阅读全文

posted @ 2012-08-10 21:28 好坏 阅读(571) 评论(0) 推荐(0) 编辑

浅析设计模式系列之二——简单工厂模式

摘要: 基本简介 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。意图:提供一个类,由它负责根据一定的条件创建某一具体类的实例。该模式中包含的角色及其职责 1) 工厂(Creator)角色 简单工厂模式的核心,它负责实现创... 阅读全文

posted @ 2012-08-10 21:20 好坏 阅读(291) 评论(0) 推荐(0) 编辑

浅析设计模式系列之一 ——综述

摘要: 什么是设计模式?设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。设计模式的基础是面向对象编程.面向对象的编程思想通过封装、继承、多态把程序的耦合度降低,使程序更加灵活,容易修改,易于复用。设计模式的种类GoF的《设计模式》是第一次将设计模式提升到理论高度,并将之规范化。它提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的 阅读全文

posted @ 2012-08-10 21:11 好坏 阅读(346) 评论(0) 推荐(0) 编辑

递归算法的时间复杂度分析

摘要: 在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较常用的有以下四种方法:(1)代入法(Substitution Method)代入法的基本步骤是先推测递归方程的显式解,然后用数学归纳法来验证该解是否合理。(2)迭代法(Iteration Method)迭代法的基本步骤是迭代地展开递归方程的右端,使之成为一个非递归的和式,然后通过对和式的估计来达到对方程左端即方程的解的估计。(3)套用公式法(Master Method)这个方法针对形如“T(n) = aT(n... 阅读全文

posted @ 2012-08-10 21:10 好坏 阅读(6150) 评论(0) 推荐(0) 编辑

字符串的循环移位

摘要: 问题描述: 将一个字符串a像左旋转i个位置。例如,当n=8且i=3时(n为字符串有效长度),向量abcdefgh旋转为defghabc。要求时间复杂度O(n),空间复杂度为O(1)问题求解: 直接将前i个数组复制到一个临时数组,将余下的元素左移,再将临时数组中的i个元素复制到末尾的方法可得正确解,但空间复杂度为O(n)。每次移动一个到末尾,剩余的前移也能得正确解,但时间复杂度为O(n^2)。显然,我们需要新的想法。 解法一: 移动a[0]到临时变量t,然后移动a[i]到a[0],a[2i]到x[i],依次类推(将a中所有下标对n取模),直至返回到取x[0]中的元素,此时改为从t取... 阅读全文

posted @ 2012-08-10 20:47 好坏 阅读(8042) 评论(1) 推荐(0) 编辑

2012年8月9日

实现自己的ls

摘要: 使用过linux的人最早接触的命令应该就是ls了,本文将带领大家应用前几篇文章讲述的操作文件和目录的系统调用,实现自己的ls指令。 函数流程: 1.获取该目录下文件的总数和最长文件名长度 2.获取该目录下所有文件的文件名,存放于变量中 3.按名字字母顺序排序,排序后文件按字母顺序存储于filenames中 4.根据参数的不同,调用display_dir()显示目录下所有文件,或调用display()显示单个文件#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <f 阅读全文

posted @ 2012-08-09 20:48 好坏 阅读(1588) 评论(0) 推荐(0) 编辑

导航