摘要:
先放代码,算法设计过程我随后再放上去[cpp]view plaincopyprint?//author:1025679612@qq.com[cpp]view plaincopyprint?//csdn:<ahref="http://blog.csdn.net/wind_2008_06_29/article/details/7706531">http://blog.csdn.net/wind_2008_06_29/article/details/7706531</a>[cpp]view plaincopyprint?#include<iostre 阅读全文
posted @ 2012-12-26 12:45
夜月神
阅读(293)
评论(0)
推荐(0)
摘要:
如果你认为自己应该是计算机科学家,那么,你应该做如下的事情:1,你学的第一门语言应该是C++,第二门是汇编2,你应该对数学的掌握不差于数学专业的比较差的学生,对于数论那些东西你也应该会3,你应该读过算法导论,更进一步的,你应该读过TAOCP(我觉得一个合格的程序员应该读过这本书)4,你应该深入理解一个系统,如果是windows 的话,你应该理解这个系统的设计理念,你应该深入理解这个系统的API,你应该深入这个平台编程,应该理解COM的原理以及为什么windows平台需要com5,你应该有一颗研究的心,一颗追求完美的心(虽然计算机的本质就不是完美的,如果要说什么是完美的,那只有数学,因为在这里面 阅读全文
posted @ 2012-12-26 12:43
夜月神
阅读(675)
评论(15)
推荐(0)
摘要:
著名的货郎担架问题大家都明白,现在要求解它。有两种办法方法一,暴力枚举法,举出所有的路径,这方法最简单,但是,需要N!的复杂度,当n比较大时,完全没有可计算性,当然,生成n!种排列比较简单,不需要什么高端的技巧。在此不解释这种解法方法二,动态规划,设T(Vi,V)表示从V1经过V中所有结点到Vi的最短路径值,于是我们有以下的转移方程 T(Vi,V)=min{D(k,i)+T(Vk,V\{Vk}}其中Vk是V中元素,其中D(k,i)表示第k个结点到第i个的距离(允许取无穷大)。我们要求解的问题是T(V1,V\{V1}).----即我们从V1出了,遍历V中除V1之外的结点,然后回到V1.根据这个. 阅读全文
posted @ 2012-12-26 12:40
夜月神
阅读(1305)
评论(0)
推荐(0)
摘要:
2012-12-03阿里巴巴有如下的笔试题目:有一个神奇的数组,其中的第i个元素在排序之后的位置位于[i-k, i+k]之间(k序的).试写算法把一个k序数组排序,要求最快.解法,显然有以下几个子序列:X[0], X[k+1], X[2(k+1)], X[3(k+1)]......X[1],X[k+1+1],X[2(k+1)+1],X[3(k+1)+1]..............................X[k],X[k+1+k],X[2(k+1)+k],X[3(k+1)+k]......这k+1个子序列是已经排序好的,剩下的任务是把其归并有两种方法:方法一,普通的merge,与把两个 阅读全文
posted @ 2012-12-26 12:38
夜月神
阅读(1547)
评论(5)
推荐(0)