美文网首页
使用python编写二分排序

使用python编写二分排序

作者: dwq1666666 | 来源:发表于2019-12-14 11:31 被阅读0次
    #  二分查找,前提是数据是有序的数列
    
    
    def search(list_data, search_num):
        # 搜索开始位置
        start = 0
        end = len(list_data) - 1
        ret_index = -1  # 未找到就是-1
        search_cnt = 0  # 查找的次数
    
        while True:
            # 当左侧比右侧小说明没有找到结果直接返回
            if start > end:
                break
    
            mid = (start + end) // 2  # 取到中间位
            mid_data = list_data[mid]
    
            # 相等表示找到了,直接返回位置
            if search_num == mid_data:
                ret_index = mid
                break
    
            # 比中间数大表示在右侧
            elif search_num > mid_data:
                start = mid + 1
    
            # 比中间数小说明在左侧
            else:
                end = mid - 1
    
            search_cnt += 1
        return ret_index, search_cnt
    
    
    if __name__ == '__main__':
        search_value = int(input('请输入你要查找的数字: '))
        data = [1, 2, 3, 4, 5]
        ret, cnt = search(data, int(search_value))
        if ret == -1:
            print('没有在数列里面所需要的值')
        else:
            print('需要查找的数位置在:{},查找的次数为{}'.format(ret, cnt))
    
    

    相关文章

      网友评论

          本文标题:使用python编写二分排序

          本文链接:https://www.haomeiwen.com/subject/yxecnctx.html