常用查找算法Python实现

二分法查找(递归):

def binarySearch(arr, min, max, key):
    mid = int((max + min)/2)
    if key < arr[mid]:
        return binarySearch(arr, min, mid-1, key)
    elif key > arr[mid]:
        return binarySearch(arr, mid+1, max, key)
    elif key == arr[mid]:
        print("找到{0}了!是第{1}个数字!".format(key, mid))
    else:
        print("没找到!")

lis = [11, 22, 33, 44, 55, 66, 77, 88, 99]
result = binarySearch(lis, 0, 8, 66)

原文地址:https://www.cnblogs.com/weswes/p/9875340.html

时间: 2024-11-05 18:51:07

常用查找算法Python实现的相关文章

c++STL之常用查找算法

引入#include<algorithm> 算法简介: find:查找元素 find_if:按条件查找 adjacent_find:查找相邻房重复的元素 binary_search:二分查找 count:统计元素个数 count_if:按条件统计元素个数 1.find #include<iostream> using namespace std; #include <vector> #include <algorithm> #include <stri

常用查找算法

原文出处:http://www.cnblogs.com/yw09041432/p/5908444.html 1.顺序查找 2.二分查找 3.差值查找 4.肥婆那楔查找 5.树表查找 6.分块查找 7.哈希查找 查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值得数据元素(或记录). 查找算法分类: 1.静态查找和动态查找 动态查找指查找表中有删除和插入操作的表. 2.无序查找和有序查找 无序查找:被查找数列有序无序均可 有序查找:被查找数列必须有序 1.顺序查找 基本思想:顺序查找也称

常用查找算法的总结

数据结构中查找的知识点主要有以下三点 1.静态查找 1.1 顺序查找 1.2 有序表 1.2.1 二分查找 1.2.2 插值查找 2.动态查找 2.1 二叉排序树 2.2 平衡二叉树 2.3 B-和B+树 3.哈希查找 3.1 常用哈希函数 3.2 解决冲突的办法 1.2.1.1  非递归实现 实现思路: 1.low=0,high=len-1; 2.mid=(low+high)/2; 3.中间值小于目标值,high=mid-1 4.中间值大于目标值,low=mid+1 5.重复 public s

【Java_Base】常用查找算法:顺序查找、二分查找

顺序查找 从第一个元素开始顺序比较查找. 二分查找 二分查找前提条件: 已排序的数组中查找 二分查找的基本思想是: 首先确定该查找区间的中间点位置: int mid = (low+upper) / 2; 然后将待查找的值与中间点位置的值比较: 若相等,则查找成功并返回此位置. 若中间点位置值大于待查值,则新的查找区间是中间点位置的左边区域. 若中间点位置值小于待查值,则新的查找区间是中间点位置的右边区域. 下一次查找是针对新的查找区间进行的. 1 public class Search{ 2 p

常用查找算法总结

1. 二分查找 //递归版 int binarySearch(const int arr[], int low, int high, int val) { if (low <= high) { int mid = low + (high - low) / 2; // Do not use (low + high) / 2 which might encounter overflow issue if (val < arr[mid]) return binarySearch(arr, low,

STL常用查找算法介绍

adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. #include <iostream> #include <cstdio> #include <algorithm> #include <vector> using namespace std; void play_adjacent_find() { vector<int> v1

Python 常用查找数据结构及算法

一.基本概念 二.无序表查找 三.有序表查找 3.1 二分查找(Binary Search) 3.2 插值查找 3.3 斐波那契查找 四.线性索引查找 4.1 稠密索引 4.2 分块索引 4.3 倒排索引 五.二叉排序树 六. 平衡二叉树 七.多路查找树(B树) 7.1 2-3树 7.2 2-3-4树 7.3 B树 7.4 B+树 八.散列表(哈希表) 8.1 散列函数的构造方法 8.2 处理散列冲突 8.3 散列表查找实现 8.4 散列表查找性能分析 参考书目<大话数据结构> 一.基本概念

Python中的二叉树查找算法模块

问题 思路说明 二叉树查找算法,在开发实践中,会经常用到.按照惯例,对于这么一个常用的东西,Python一定会提供轮子的.是的,python就是这样,一定会让开发者省心,降低开发者的工作压力. python中的二叉树模块内容: BinaryTree:非平衡二叉树 AVLTree:平衡的AVL树 RBTree:平衡的红黑树 以上是用python写的,相面的模块是用c写的,并且可以做为Cython的包. FastBinaryTree FastAVLTree FastRBTree 特别需要说明的是:树

常用排序算法的python实现

排序算是编程最基本的算法问题之一了,熟练掌握排序算法也能加深自己对数据结构的理解,也能提高自己的编程能力,以下为个人参考许多大神博客后对常用排序算法的学习总结. 目录: 概述 冒泡排序 直接插入排序 简单选择排序 希尔排序 堆排序 归并排序 快速排序 算法的比较与测试 参考 1. 概述 所谓排序(sorting)就是整理数据的序列,使其按照特定顺序排列的操作.排序在现实生活中(如整理书籍,表格数据等),在计算领域中(如二分查找,图论的最小生成树的Kruskal算法)均有重要意义,所以一种高效的排