
算法分析
文章平均质量分 81
houdy
这个作者很懒,什么都没留下…
展开
-
交换两段不连续的内存块(Swap Nonadjacent Memory Blocks)
问题:如何交换两段不连续的内存块?分析篇这道题是编程珠玑,第二版>第二章后的一个习题。看过这本书的朋友一定会对书中第二章介绍的用来交换两段连续的内存块的"reversal algorithm"一定记忆犹新。"reversal algorithm"无论在时间复杂度还是在空间复杂度上都有良好的表现,更重要的是它的实现相当简单:1。假设有两段连续的内存块a和b;2。首先对内存块a进行反转:a = re原创 2006-12-10 14:55:00 · 5584 阅读 · 0 评论 -
反转字符串中的单词(Reverse Words)
前言:在前面一篇文章中,我们在反转长度不等的两块连续内存块的算法的基础上推导出了反转长度不等的两块不连续内存块的算法。在本文中,我将使用前文分析的算法去解决一个更复杂的问题:反转字符串中的单词。引子话说有这样一道算法题:PROBLEM:Reverse WordsCOMMENT:Write a function that reverses the order of the words in a st原创 2006-12-16 11:43:00 · 11549 阅读 · 0 评论 -
对单链(Single-Linked List)操作的思考
前言对于单链(single-linked list)的考察频繁的出现在各种各样的考试题和面试题中。这其中的原因,一方面是因为单链的使用相当广泛,更重要的是单链的使用非常灵活,某些单链的操作对程序员的算法分析能力和灵活思考能力有很高的要求。本文通过对几个有代表性的单链算法的分析试图寻找解决单链问题的"万能钥匙",最起码也为提供一个通用的思路。单链的特性在进入到具体的算法分析之前,我觉得有必要分析原创 2007-01-09 14:57:00 · 6846 阅读 · 10 评论 -
Merge Two Sorted Single-linke List
引言在解决某个算法问题的时候,我们经常会遇到这样的情况:单纯解决这个问题本身并不难,但是如果在解决问题的同时我们还需要考虑到时间复杂度和空间复杂度,这时候情况就显得稍微复杂一点。那么对于某个具体的问 题,我们如何才能设计出高效的算法呢?本文通过对一个具体问题的分析试图阐述一个这样的观点:对题目已知条件的充分挖掘和理解是设计出高效算法的前提。近日在优快云上看到一个关于单链的算法题:原创 2007-03-31 11:00:00 · 3913 阅读 · 2 评论