一、算法:高效解决问题的办法。
二、二分法:每次把内容切分成上次的一半,反复执行,直至寻得目标。
def search(in_list, tar_num, count): # 定义函数,需要参数:查找列表,目标数字,初始计次 count += 1 # 每调用一次函数,计数 +1 ,代表查找次数 +1 if len(in_list) == 0: print('目标数字不存于该列表中') # 直至切出空列表也未得结果告知目标数字不存于该列表中 return # 结果函数,以防空列表进入后续代码 mid_index = len(in_list) // 2 # 取得列表的中间位置索引 if tar_num < in_list[mid_index]: # 若目标数字小于中间数字 in_list = in_list[:mid_index] # 则表示目标数字位于目前列表的左半区,切出左半区作为新列表检索 search(in_list, tar_num, count) # 重复执行检索 elif tar_num > in_list[mid_index]: # 若目标数字大于中间数字 in_list = in_list[mid_index + 1:] # 则表示目标数字位于目前列表的右半区,切出右半区作为新列表检索 search(in_list, tar_num, count) # 重复执行检索 else: print('已找到目标数字,用了{}次'.format(count)) # 直至找到结果,或者切出空列表 l = [0, 1, 3, 5, 6, 8, 9, 12, 54, 312, 5672, 7777] # 检索列表的元素必须是有序的才可使用本法 search(l, 5, 0) # 结果是 已找到目标数字,用了2次
三、面向过程编程思想:过程即流程,就是指做事情的步骤,第一步如何,第二部如何,等等。基于流程思维的编程思想就像在设计一条流水线。
1、优点:把复杂的问题流程化,可以进而简单化。
2、缺点:因为流程化代表标准化,所以可拓展性比较差。
3、应用场景:
①不需要频繁更迭,或一次成型的程序,如脚本等。
②每次更迭不需要对所有部分修改,改动的部分不多的程序。