共 27 篇文章
显示摘要每页显示  条
从快速排序来看迭代和递归的区别。上面所写的这个快速排序中,分别用到了迭代和递归两种方法,其中,QuickSort函数就是递归,Partition则是迭代。1. 对于迭代和递归都是用循环结构,迭代则是显示的使用循环,上面的Partition函数就是显示的使用了while 循环,而递归则是重复性的函数自身调用(可以是间接的也可以是直接的)来实现循环,QuickSo...
用表驱动代替switch不知道从什么时候开始,switch-case语句成了代码坏味道的代名词,写代码的时候小心翼翼地避开它,看到别人代码中的switch-case就皱眉头,想想其实大可不必这样,switch-case语句并不是代码坏味道的根源,坏味道来自糟糕的代码(结构)设计,比如过多的switch-case分支,或者多重switch-case嵌套等等,这些都将导致代码可读性...
关于广度优先搜索和深度优先搜索的一些想法。深度优先搜索:深度优先搜索是按照树的深度进行搜索的,所以又叫纵向搜索,在每一层只扩展一个节点,直到为树的规定深度或叶子节点为止。在树深度已知情况下,并且树体系相当庞大时,深度优先搜索往往会比广度优先搜索优秀,因为比如8*8的马踏棋盘中,如果用广度搜索,必须要记录所有节点的信息,这...
现在分析算式2和算式3,根据是否需要借位,算式2和算式3一共有四种借位组合结果,下面分别对这四种借位组合结果进行分析。假设二:算式5需要借位,算式6需要借位,则算式5和算式6应该修正为算式4.3.1和算式4.3.2:假设四:算式5不需要借位,算式6需要借位,此时根据算式5被修正为O – 1 – L = O,这种情况下也是无解的。假设二:算式5需要借位...
我是悲观主义程序员,好在还有五件武器。我希望,任何调用我的模块的程序,都能按照希望的参数格式和调用方法,正确地调用我的模块。我没有足够的自信,认为自己能够很好地驾驭多个模块的大型程序,也不相信自己写过的、超过50行的程序会没有问题,因此,我会尽量引入单元测试,对每一个重要的函数或模块进行地毯式单元测试,当看到那一遍测试...
一个进程在内存中的布局一个进程在内存中的布局。首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的d...
--这就是常量折叠.这个"常量折叠"是 就是在编译器进行语法分析的时候,将常量表达式计算求值,并用求得的值来替换表达式,放入常量表。对于int double等类型还好理解,但是对于字符串常量(tcpl里说将字符串文字量作为常量,利于存储与访问时的优化)下面的代码似乎表示字符串常量存储在静态存储区里(字符串文字量是静态分配的--t...
IP地址网段表示法IP地址网段表示法。子网掩码的作用是用来表示IP地址中的多少位用来表示主机号, “其中值为1的比特留给网络号和子网号,为0的比特留给主机号”(TCP/IP V1), 在B类网址中一边用来表示主机, 因为在B类网址中用来表示主机号共有16bit,而实际中一般都不会安排如此多主机。这样整个表示的IP地址段就很清楚了, 去掉全为0和全为...
01背包问题是最基本的背包问题,它包含了背包问题中设计状态、方程的最基本思想,另外,别的类型的背包问题往往也可以转换成01背包问题求解。既然01背包问题是最基本的背包问题,那么我们可以考虑把完全背包问题转化为01背包问题来解。对于一个给定了背包容量、物品费用、物品间相互关系(分组、依赖等)的背包问题,除了再给定每个物品的价值...
0-1背包问题:解释一下上面的方程:“将前i件物品放入容量为v的背包中”这个子问题,如果只考虑第i件物品放或者不放,那么就可以转化为只涉及前i-1件物品的问题,即1、如果不放第i件物品,则问题转化为“前i-1件物品放入容量为v的背包中”;01背包问题是最基本的背包问题,它包含了背包问题中设计状态、方程的最基本思想,另外,别的类型的背包...
帮助 | 留言交流 | 联系我们 | 服务条款 | 下载网文摘手 | 下载手机客户端
北京六智信息技术股份有限公司 Copyright© 2005-2024 360doc.com , All Rights Reserved
京ICP证090625号 京ICP备05038915号 京网文[2016]6433-853号 京公网安备11010502030377号
返回
顶部