32.算法图解(python)1-7

https://pan.baidu.com/s/1pmMGoEcQspYUNc_2hmWUEg
讲解了概念,有例题,有答案,代码不算多。非常好的入门级书。图灵的书是真不错
广度优先搜索、狄克斯特拉算法、贪婪算法、动态规划、K最近邻算法、
常用算法https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/89077881

第一章:算法简介
 二分查找的速度比简单查找快得多。
 O(log n)比O(n)快。需要搜索的元素越多,前者比后者就快得越多。  算法运行时间并不以秒为单位。
 算法运行时间是从其增速的角度度量的。
 算法运行时间用大O表示法表示。

1.1 假设有一个包含128个名字的有序列表,你要使用二分查找在其中查找一个名字,请 问最多需要几步才能找到?
7步
1.2 上面列表的长度翻倍后,最多需要几步
8步
使用大O表示法给出下述各种情形的运行时间。
1.3 在电话簿中根据名字查找电话号码。
我的答案:O(1) 书的答案:O(log n)
1.4 在电话簿中根据电话号码找人。(提示:你必须查找整个电话簿。)
O(n)
1.5 阅读电话簿中每个人的电话号码。
O(n)
1.6 阅读电话簿中姓名以A打头的人的电话号码。这个问题比较棘手,它涉及第4章的概 念。答案可能让你感到惊讶!
我的答案:O(1) 书的答案:O(n)。你可能认为,我只对26个字母中的一个这样做,因此运行时间应为O(n / 26)。需要 牢记的一条简单规则是,大O表示法不考虑乘以、除以、加上或减去的数字。下面这些 都不是正确的大O运行时间:O(n + 26)、O(n  26)、O(n * 26)、O(n / 26),它们都应表示 为O(n)!为什么呢?如果你好奇,请翻到4.3节,并研究大O表示法中的常量(常量就是 一个数字,这里的26就是常量)。

def binary_search(list, item):
    low = 0
    high = len(list) - 1
    while low <=high:
        mid_index = int((low + high)/2)
        mid = list[mid_index]
        if mid > item:
            high = mid_index - 1
        elif mid < item:
            low = mid_index + 1
        else:
            return mid
sorted_list = [1,2,3,4,5,6,7,8,9,22,33,44,55]
print(binary_search(sorted_list, 5))

第2章 选择排序
 计算机内存犹如一大堆抽屉。
 需要存储多个元素时,可使用数组或链表。
 数组的元素都在一起。
 链表的元素是分开的,其中每个元素都存储了下一个元素的地址。
 数组的读取速度很快。
 链表的插入和删除速度很快。
 在同一个数组中,所有元素的类型都必须相同(都为int、double等)。

?2.1 假设你要编写一个记账的应用程序。
你每天都将所有的支出记录下来,并在月底统计支出,算算当月花了多少钱。因此, 你执行的插入操作很多,但读取操作很少。该使用数组还是链表呢?
我的答案:链表
书的答案:在这里,你每天都在列表中添加支出项,但每月只读取支出一次。数组的读取速度快, 而插入速度慢;链表的读取速度慢,而插入速度快。由于你执行的插入操作比读取操作 多,因此使用链表更合适。另外,仅当你要随机访问元素时,链表的读取速度才慢。鉴 于你要读取所有的元素,在这种情况下,链表的读取速度也不慢。因此,对这个问题来 说,使用链表是不错的解决方案。
?2.2 假设你要为饭店创建一个接受顾客点菜单的应用程序。这个应用程序存储一系列点菜 单。服务员添加点菜单,而厨师取出点菜单并制作菜肴。这是一个点菜单队列:服务 员在队尾添加点菜单,厨师取出队列开头的点菜单并

算法图解-python.pdf》是一本介绍算法和使用Python语言实现算法的书籍。该书的目的是帮助读者了解算法的基本概念和原理,并通过Python编程实践来加深理解。 这本书以图解的方式呈现算法的思想和应用,使复杂的算法问题变得直观易懂。读者可以通过阅读该书,学习到各种常见的算法设计和解决思路,如排序算法、搜索算法、图算法等。同时,该书也会介绍一些高级算法,如动态规划、贪婪算法等,以及如何通过Python语言实现这些算法。 《算法图解-python.pdf》的内容结构清晰,通俗易懂。每个算法都有详细的解释和示例代码,读者可以通过实际编程来加深对算法的理解。此外,书中还包含了一些挑战性的练习题,供读者进一步巩固所学的知识。 通过阅读《算法图解-python.pdf》,读者不仅可以学习到算法的基本知识,还可以了解到如何运用Python语言实现这些算法。这对于刚开始学习算法和Python编程的读者来说是非常有帮助的。无论是计算机科学专业的学生,还是对算法感兴趣的爱好者,都可以从这本书中受益匪浅。 总之,《算法图解-python.pdf》是一本很好的算法入门书籍,以图解和Python编程为特色,适合各类读者学习和参考。通过阅读和实践,读者可以提高算法设计和编程实现的能力,为解决实际问题提供有效的思路和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值