数组作为最简单的数据结构,其许多应用好好琢磨还是有很多可以钻研和探讨的,这篇博文非常的好,介绍了许多数组相关应用和操作的知识:http://www.cnblogs.com/graphics/archive/2010/08/24/1761620.html
这句话对于数组查找给了一个总结:
小小总结一下,对于在数组中进行查找的问题,可以分如下两种情况处理
1. 如果给定的数组有序,那么首先应该想到Binary Search,所需O(logn)
2. 如果给定的数组无序,那么首先应该想到对数组进行排序,很多排序算法都能在O(nlogn)时间内对数组进行排序,然后再使用二分搜索,总的时间复杂度仍是O(nlogn)。
如果能做到以上两点,大多数关于数组的查找问题,都能迎刃而解。
由此也可以看出为啥排序算法是所有算法书的核心了,促使我好好的研究排序,只要一个数组或序列是有序的,其处理起来都是很方便的,不知在未来的工作中大家都是怎么处理数据的,如果是这样的话,那也就能够解释为啥公司招聘都要问各种的排序算法了。
异或:我一直都关注与位操作,但却忽略了以下几点:
1.任意一个变量X与其自身进行异或运算,结果为0,即X^X=0
2.任意一个变量X与0进行异或运算,结果不变,即X^0=X
3.异或运算具有可结合性,即a^b^c=(a^b)^c=a^(b^c)
4.异或运算具有可交换性,即a^b=b^a