一、算法:高效解决问题的办法。

二、二分法:每次把内容切分成上次的一半,反复执行,直至寻得目标。

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、应用场景:

    ①不需要频繁更迭,或一次成型的程序,如脚本等。

    ②每次更迭不需要对所有部分修改,改动的部分不多的程序。

 

posted on 2020-01-03 18:01  焚音留香  阅读(647)  评论(0编辑  收藏  举报