Archive for the ‘Algorithm’ Category

在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。

Wednesday, February 24th, 2010 at 21:01 | 2 comments
Categories: Algorithm
Tags:

【例1】汉诺塔问题描述:
古代有一个梵塔,塔内有3个基座A、B、C,开始时A基座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到B座,但每次只允许移动一个盘子,且在移动过程中在3个基座上的盘子都始终保持大盘在下,小盘在上。在移动过程中可以利用C基座做辅助。请编程打印出移动过程 。

Wednesday, February 24th, 2010 at 20:27 | 0 comments
Categories: Algorithm
Tags:

循环体的特点是:“以不变应万变”。
所谓“不变”是指循环体内运算的表现形式是不变的,而每次具体的执行内容却是不尽相同的。在循环体内用不变的运算表现形式去描述各种相似的重复运算。
在使用循环时候,要注意一下几点:
1.设计中要注意算法的效率
2.“自顶向下”的设计方法
3.由具体到抽象设计循环结构

Wednesday, February 24th, 2010 at 20:02 | 0 comments
Categories: Algorithm
Tags:

算法分为时间复杂度和空间复杂度。时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小。
一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n))  分析:随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越高。当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。

Wednesday, February 24th, 2010 at 14:08 | 0 comments
Categories: Algorithm
Tags:

这是一篇普及互联网术语的文章。每天呆在互联网上,发现呆的时间越长,发现自己不知道的东西越多。互联网上有太多的知识,虽然我们不可能一下子了解透彻, 但是遇到一个就有必要去了解其相关的知识或是原理,这样以后再见到他就不会觉得陌生了。
Base64是一种使用64基的位置计数法。它使用2的最大次方来代表仅可打印的ASCII 字符。这使它可用来作为电子邮件的传输编码。在Base64中的变量使用字符A-Z、a-z和0-9 ,这样共有62个字符,用来作为开始的64个数字,最后两个用来作为数字的符号在不同的系统中而不同。例如:”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“。
base64是一种将二进制的01序列转化成ASCII字符的编码方法。编码后的文本或者二进制消息,就可以运用SMTP等只支持ASCII字符的协议传送了。Base64一般被认为会平均增加33%的报文长度,而且,经过编码的消息对于人类来说是不可读的。
在MIME格式的电子邮件中,base64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本。

Tuesday, January 26th, 2010 at 18:00 | 0 comments
Categories: Algorithm
Tags: , ,

5个海盗抢到了100颗宝石,每一颗都一样的大小和价值连城。
他们决定这么分:
1。抽签决定自己的号码(1,2,3,4,5)
2。首先,由1号提出分配方案,然后大家5人进行表决,当且超过半数或半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。
3。如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当半数和超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。
4。以次类推……

Sunday, January 17th, 2010 at 01:20 | 0 comments
Categories: Algorithm

排序是一个极为常用的算法,这篇文章收集所有常见的排序算法实现,方便回顾
常见的排序算法:
1. 插入排序 O(n^2)
插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止。
2. 堆排序(Heap Sort)
n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):
(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤)
若将此序列所存储的向量R[1……n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。
堆的这个性质使得可以迅速定位在一个序列之中的最小(大)的元素。

Tuesday, December 8th, 2009 at 12:53 | 0 comments
Categories: Algorithm, Post
Page 1 of 11
TOP