算法

算法简介

计算机算法是计算机有效求解问题的方法,是一步一步解决问题的过程。

二分法

二分法是算法里最基础的一个,这里只是用作我们接触算法的敲门砖。

二分法的使用前提与原理

  • 使用前提
    二分法的使用前提是要求解决问题的数据集必须有顺序(严格升序或降序),否则二分法解决该类问题的结果一般都是错误的。
  • 原理
    将目标数据与中位数进行对比,目标数据大的时候取数据集中位数的右半部分作为新数据集,目标数据小的时候取数据集中位数的左半部分作为新数据集,然后对新数据集继续二分比对中位数与目标值,重复上述步骤。

二分法的代码实现

      list_num = [11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 222, 333, 444, 555, 666]


      def get_num(list_num, aim_num):
          if len(list_num) == 0:
              print('侬不给偶,让偶找撒贼')
              return
          mid_num = len(list_num)//2
          if aim_num > list_num[mid_num]:
              list_num_left = list_num[mid_num+1:]  # 目标值大于中间值,保留中间值右侧
              print(list_num_left)
              get_num(list_num_left, aim_num)  # 递归
          elif aim_num < list_num[mid_num]:
              list_num_right = list_num[:mid_num]  # 目标小于中间值,保留中间值左侧
              print(list_num_right)
              get_num(list_num_right, aim_num)  # 递归
          else:
              print('find it', aim_num)


      get_num(list_num, 555)
      get_num(list_num, 66)
      get_num(list_num, 111)

算法之二分法结束

posted @ 2022-03-21 17:28  Oliver-Chance  阅读(203)  评论(0)    收藏  举报