一、二分搜索
二分搜索可以说是无处不在,应用它的前提是,对象有序且在某一范围之内。
二、基本操作的威力
灵机一动,经过许久的思考,得出的解决方案或许就是一些基本操作的组合,不是吗?
求逆代码:把ab变成ba,可以有如下的方法:ab->a
rb->a
rb
r->(a
rb
r)
r->ba
E.G. n元向量左移i个位置
reverse(0, rotdist - 1);
reverse(rotdist, n-1);
reverse (0, n-1);
三、排序
变位分词的应用,关键在于:选择标识和集中具有相同标识的单词
四、原理
1)排序:产生有序输出,将相等的元素集中在一起
2)二分搜索
3)标识:当使用等价类定义时,定义一种标识使同类中每一项都具有相同的标识,而该类之外的其它项则没有该标识,这是很有用的
4)问题的定义:用户的需求才是程序设计的根本
5)问题解决者的观点:优秀的程序员有点懒,他们坐下来等待灵机一动的出现而不急于使用最开始的想法编程