python实现二分查找非递归_数据结构与算法:二分查找

本文介绍了二分查找算法,这是一种在有序数组中搜索元素的高效算法。文章提供了JavaScript和Python的非递归与递归实现,并分析了二分查找的时间复杂度为O(log n)。此外,还对比了二分查找与简单查找的效率,讨论了快速排序的分治思想及其O(n log n)的时间复杂度。
摘要由CSDN通过智能技术生成

常见数据结构简单数据结构(必须理解和掌握)有序数据结构:栈、队列、链表。有序数据结构省空间(储存空间小)

无序数据结构:集合、字典、散列表,无序数据结构省时间(读取时间快)

复杂数据结构树、 堆

本系列主要内容数组和列表: 最常用的数据结构与链表相比,数组具有更好的缓存位置。

栈和队列: 与列表类似但是更复杂数据结构

链表: 如何通过它们克服数组的不足,链表允许在迭代期间有效地从序列中的任何位置插入或删除元素。

链表的一个缺点是访问时间是线性的(而且难以管道化)。(更快的访问,如随机访问,是不可行的)

字典: 将数据以键-值对的的形式储存

散列(表): 适用于快速查找和检索

集合: 适用于存储只出现一次的元素

二叉树: 以层级的形式存储数据

图和图算法: 网络建模的理想选择

算法:包括排序、搜索、图形算法

高级算法: 动态规划、贪心算法、BF、分治、回溯等算法范式

加密算法:

复杂度分析

有序数据结构

数组

列表

队列

链表

数组与链表的对比内存的分配方式不同: 由于数组具有连续性,需要开辟一段连续内存空间(前提是系统得有足够得连续内存供使用,因此要求比较高),而链表则可充分利用离散的内存࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值