diff --git "a/20345円244円251円345円244円251円347円224円237円351円262円234円351円241円271円347円233円256円/README.md" "b/20345円244円251円345円244円251円347円224円237円351円262円234円351円241円271円347円233円256円/README.md" index c72f2b2..38a8d41 100644 --- "a/20345円244円251円345円244円251円347円224円237円351円262円234円351円241円271円347円233円256円/README.md" +++ "b/20345円244円251円345円244円251円347円224円237円351円262円234円351円241円271円347円233円256円/README.md" @@ -1,6 +1,6 @@ # 20 美多商城项目[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) -具体的请查看该篇章中的代码实现。 +具体的请查看https://github.com/HaoZhang95/dailyfresh 这个仓库的代码实现 **** |Author|白发老书生| diff --git "a/26346円225円260円346円215円256円347円273円223円346円236円204円/day03/06_merge_sort.py" "b/26346円225円260円346円215円256円347円273円223円346円236円204円/day03/06_merge_sort.py" index 2e818a7..ded9ca0 100644 --- "a/26346円225円260円346円215円256円347円273円223円346円236円204円/day03/06_merge_sort.py" +++ "b/26346円225円260円346円215円256円347円273円223円346円236円204円/day03/06_merge_sort.py" @@ -1,7 +1,30 @@ -def merge_sort(alist, first, last): +def merge_sort(alist): """ 归并排序:对数组进行对半拆分,直到每个只有一个元素,然后进行合并 合并中 """ + n = len(alist) + if n <= 1: + return alist + + mid = n // 2 + left_li = merge_sort(alist[:mid]) + right_li = merge_sort(alist[mid:]) + + left_pointer, right_pointer = 0, 0 + result = [] + + while left_pointer < len(left_li) and right_pointer < len(right_li): + + if left_li[left_pointer] < right_li[right_pointer]: + result.append(left_li[left_pointer]) + left_pointer += 1 + else: + result.append(right_li[right_pointer]) + right_pointer += 1 + + result += left_li[left_pointer:] + result += right_li[right_pointer:] + return result diff --git "a/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/01_binary_search.py" "b/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/01_binary_search.py" index cee1d03..28ffdc7 100644 --- "a/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/01_binary_search.py" +++ "b/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/01_binary_search.py" @@ -1,5 +1,43 @@ -def binary_search(alist): +def binary_search(alist, item): """二分法查找,递归方法""" n = len(alist) - mid = n // 2 \ No newline at end of file + mid = n // 2 + + if n> 0: + + if alist[mid] == item: + return True + elif item < alist[mid]: + # 产生新的列表进行递归 + return binary_search(alist[:mid], item) + else: + return binary_search(alist[mid:], item) + + return False + + +""" + 二分法查找的折半查找,操作的对象必须有序,其次计算mid需要index需要顺序表才行 + 时间复杂度为 折半2的几次方等于n,最坏所以为 O(logn),最好就是O(1) +""" + + +def binary_search_2(alist, item): + """二分法查找,非递归方法""" + + n = len(alist) + first = 0 + last = n - 1 + + while first <= last: + + mid = (first + last) // 2 + + if item == alist[mid]: + return True + elif item < alist[mid]: + last = mid - 1 + else: + first = mid + 1 + return False diff --git "a/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/02_tree.py" "b/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/02_tree.py" new file mode 100644 index 0000000..8aebcb4 --- /dev/null +++ "b/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/02_tree.py" @@ -0,0 +1,98 @@ +""" + 树分为好多种,二叉树就是一个父节点最多只能包含两个子节点,树的度最多为2 + + 完全二叉树:如果有n层,那么除了最底层之外的节点都挂满了子节点,父节点都达到了最大的度 + 满二叉树:所有节点都达到最大的度,包含最底层 + 平衡二叉树:当且仅当任意一个节点的**两颗子树**的高度差不大于1的二叉树 + 有序二叉树:树的每一个节点都是有序的,根节点左边的节点都比根节点小,右边的都比根节点大 +""" + +""" + 树的存储: + 如果采用顺序存储的话,那么以数组的方式,装完一层之后去装下一层的节点,虽然遍历上有优势,但是占用空间大,非主流的存储方式 + 一般采用的就是链式的存储方式,树常用在xml,html的解析中,mysql的索引,路由协议,文件系统的目录结构 +""" + + +class Node(object): + """树的结构类似于链表的扩充,也需要节点""" + + def __init__(self, elem=None, lchild=None, rchild=None): + self.elem = elem + self.lchild = lchild + self.rchild = rchild + + +class Tree(object): + + def __init__(self, root): + self.root = root + + def add(self, item): + """完全二叉树的添加,那一层缺元素的话那么就直接添加到该层的节点,那一层的节点没满就添加到此处""" + node = Node(item) + if self.root is None: + self.root = node + return + + queue = [self.root] + while queue: + # 只要队列存在元素,就pop判断 + cur_node = queue.pop(0) + if cur_node.lchild is None: + cur_node.lchild = node + return + else: + queue.append(cur_node.lchild) + + if cur_node.rchild is None: + cur_node.rchild = node + return + else: + queue.append(cur_node.rchild) + + def breadth_travel(self): + """广度遍历""" + if self.root is None: + return + + queue = [self.root] + while queue: + + cur_node = queue.pop(0) + print(cur_node) + + if cur_node.lchild is not None: + queue.append(cur_node.lchild) + if cur_node.rchild is not None: + queue.append(cur_node.rchild) + + def pre_order(self, node): + """深度遍历中的先序便利,根节点先, 根 -> 左 -> 右""" + + if node is None: + return + + print(node.elem) + self.pre_order(node.lchild) + self.pre_order(node.rchild) + + def in_order(self, node): + """深度遍历中的中序便利,根节点在中, 左 -> 根 -> 右""" + + if node is None: + return + + self.in_order(node.lchild) + print(node.elem) + self.in_order(node.rchild) + + def post_order(self, node): + """深度遍历中的后序便利,根节点在后, 左 -> 右 -> 后""" + + if node is None: + return + + self.post_order(node.lchild) + self.post_order(node.rchild) + print(node.elem) diff --git "a/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/__init__.py" "b/26346円225円260円346円215円256円347円273円223円346円236円204円/day04/__init__.py" new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 0847aab..03db3e4 100644 --- a/README.md +++ b/README.md @@ -2,29 +2,47 @@ -传智播客&黑马出品的Python24期人工智能整套代码和讲义集合,仓库主要为了学习Python和机器学习基础,每一章的具体知识点可以在下面的目录中详细查看课程大纲,具体的讲义文档,提供在线阅读和下载,大部分的章节讲义使用了Gitbook进行整章的阅读,同样的,在学习的过程中,我在代码中都每行进行了注释,基本上不用看文档也能理解,方便进行阅读和理解,希望能够帮助大家。资源搜集劳神费力,望大家多多支持,喜欢本仓库的话,记得Star哦。 +仓库主要为了学习Python和机器学习基础,每一章的具体知识点可以在下面的目录中详细查看课程大纲,具体的讲义文档,提供在线阅读和下载,大部分的章节讲义使用了Gitbook进行整章的阅读,同样的,在学习的过程中,我在代码中都每行进行了注释,基本上不用看文档也能理解,方便进行阅读和理解,**望大家多多支持,喜欢本仓库的话,记得Star哦,希望能够帮助大家。** **** |Author|白发老书生| |---|--- -|E-mail|Github联系 -> 最近更新至第23章节(共30章节):2019年05月08日 +|E-mail|请提交issue方便其他人查看 +> 最近更新至第30章节(共30章节):2026年03月05日 +**** +### 失效链接已更新(开放下载链接) 2026年03月05日 + +链接: +**** +24期:链接: https://pan.baidu.com/s/1Q9ZFKk81P42T6CVyJzp9dA?pwd=b7ju 提取码: b7ju + +37期:链接: https://pan.baidu.com/s/1hKF6ZSiFQk79-BDb6b7TFA?pwd=8wb1 提取码: 8wb1 + +**** + + +**以第二套的为准,第一套结构胡乱,讲义不全,第二套讲义的内容可以点击下面的章节图片进行在线预览。链接设置为永久有效,如果百度云链接失效,请在issue联系我,我会及时回复。** **** ![Logo](https://i.imgur.com/lAUV1FT.png) 具体更详细的Python学习路线图可以在[此处](http://bbs.itheima.com/forum.php?mod=viewthread&tid=414606&page=1)中查看 -> 讲义文档,在线阅读 +> 讲义文档,在线阅读,点击即可 [![讲义文档](https://i.imgur.com/pE1FRnd.png)](https://haozhang95.github.io/Python24/) > 讲义文档,百度云下载 -前往百度云(提取码:nhja),点击[这里](https://pan.baidu.com/s/1stzmPEMGMo3W1g_CnlZ_bA) -下载后的讲义解压密码:BJ黑马python培训第24期 +链接: +**** +24期:链接: https://pan.baidu.com/s/1Q9ZFKk81P42T6CVyJzp9dA?pwd=b7ju 提取码: b7ju + +37期:链接: https://pan.baidu.com/s/1hKF6ZSiFQk79-BDb6b7TFA?pwd=8wb1 提取码: 8wb1 + +****

目录

@@ -56,9 +74,14 @@ - [x] [23电商爬虫和Scrapy框架](/23电商爬虫和Scrapy框架/README.md) - [x] [24自动化运维](/24自动化运维/README.md) - [x] [25项目环境自动化部署](/25项目环境自动化部署/README.md) -- [ ] [26数据结构](/26数据结构/README.md) +- [x] [26数据结构](/26数据结构/README.md) - [ ] [27数据挖掘](/27数据挖掘/README.md) +## Stargazers over time + +[![Stargazers over time](https://starchart.cc/luckyzhz/Software-Designer.svg)](https://starchart.cc/luckyzhz/Software-Designer) + + ## 备注 -学习还在进行中,章节还在更新中,本仓库中的所有内容均来自于网络,仅学习目的,如有侵权,请及时联系撤销发布。 +仅学习目的,如有侵权,请及时联系撤销发布。

AltStyle によって変換されたページ (->オリジナル) /