二分法原理及实现
二分法原理概述
简单粗暴一点理解二分法
-
将数据有序排列:先将一个数据集进行有序排列(可根据某种数值的大小降序或升序<当然排序的规则可根据业务规则自定义>,前提是需要查找的数据具备该规则同样的属性);
-
数据分半:就是将排序好的数据集切分成大致相等的两份数据;
-
查找数据:把排序好的数据拆分为个数大致相等的两半,因为有排序,查找的时候先和其中一半数据种的最大或者最小的数进行比较来断定要查找的数据是否会包含被分割后的一半数据种,然后在满足判定条件的数据集中一次获取数据进行比对直到找到数据或者比较完所有数据返回没有该数据,
python实现代码
# -*- coding: utf-8 -*-
import os
import sys
def dichotomySreach(list,val):
pass
begin = 0
end = len(list) -1
while begin <= end :
mid = (begin + end