分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排...
分类:
其他好文 时间:
2014-07-31 20:44:17
阅读次数:
287
这是从网上查到的概念资料,先收来~一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如...
分类:
其他好文 时间:
2014-07-20 22:30:22
阅读次数:
307
第一章 数据结构与算法的引入1.1 数据结构的基本概念一、学习数据结构的意义 程序设计 = 数据结构 + 算法目前,80%的待处理的数据具有“算法简单”(四则运算、检索、排序等),“对象复杂”(数据类型不同、数据量大、需要保存)等特点,故合理组织数据、选择较好的数据结构可为高效算法(时间少、占用空间...
分类:
其他好文 时间:
2014-07-13 12:30:11
阅读次数:
271
以下各题均有时间复杂度为O(n*n)或以空间换取时间使得时间空间复杂度为O(n)的算法,在此均不考虑。
问题一、字符串移动
字符串为*号和26个字母的任意组合,把*号都移动到最左侧,把字母移到最右侧并保持相对顺序不变,要求时间和空间复杂度最小 。如“afdg**fa**hjfkdsl”变换成“****afdgfahjfkdsl”
此题前后字符串的长度...
分类:
其他好文 时间:
2014-06-20 10:49:56
阅读次数:
296
最近在图书馆看到本神书《算法心得:高效算法的奥秘》,主要讲解计算机算法的,强调编译器优化和计算机体系结构设计的。虽然看的不大懂,但还是给自己增长了见识和知识。少许整理些自己感兴趣的算法,以备后续温故知新。
1. 操作最右边的位元
a. 将字组中值为1且最靠右的位元置0,如果不存在值为1的位元,则全部结果为0(例如 0101 1110 => 0101 1100):
x & (x-1)
...
分类:
其他好文 时间:
2014-06-14 14:07:25
阅读次数:
270
分治算法
一、基本概念
在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……
任何一个可以用计算机求解的...
分类:
其他好文 时间:
2014-06-04 14:10:55
阅读次数:
344