实在是已经忘记了什么是二维数组了,今天遇到相关的概念啥也想不起来,把最基础的概念做一些整理。
二维数组的创建
list可以用来创建二维数组,但是我看更方便的是使用numpy模块。
NumPy 全称为 Numerical Python,是 Python 的一个以矩阵为主的用于科学计算的基础软件包,NumPy 和 Pandas、Matpotlib 经常结合一起使用,所以被人们合称为数据分析三剑客。
two_array = numpy.array([[1,2,3], [4,5,6]])
二维数组的遍历
在Numpy这个库中提供了不少操作二维数组的内置方法,但是我还是觉得使用for循环是最基础,最容易帮助我看到二维数组的形式的,所以这里是看for循环相关的实现:
def TwoD_Array_Search():
two_array = numpy.array([[1,2,3], [4,5,6]])
for value in two_array:
print(value) #这里打印出来的是[1,2,3]\[4,5,6]
for index in value:
print(index) #这里打印出来的是1,2,3;4,5,6
二分法
采用二分法进行查找时,数据是需要先排好序的。
基本思想:假设数据是排好序的,对于给定的值key,从序列的中间位置k开始比较,如果当前位置arr[k]值等于key,则查找成功;如果key小于arr[k],则在数列的前半段中查找,arr[low,mid-1];若key大于当前的arr[k],则在数列的后半段中查找,arr[mid+1,high],直到找到或者所有的范围查找结束为止,时间复杂度是log n。
实现
递归:

非递归:(实现的是在二维数组中查找想要的值,二维数组中的书已经做好了排序)
