数据结构
水花
酷爱数据科学,擅长Python,希望有志同道合的朋友一起交流学习!
展开
-
Python 顺序查找和二分查找代码实现
# -*- coding:utf8 -*-"""查找 - 顺序查找和二分查找算法:解决问题的方法(步骤)评价一个算法的好坏主要有两个指标:渐近时间复杂度和渐近空间复杂度,通常一个算法很难做到时间复杂度和空间复杂度都很低(因为时间和空间是不可调和的矛盾)表示渐近时间复杂度通常使用大O标记O(c):常量时间复杂度 - 哈希存储 / 布隆过滤器O(log_2 n):对数时间复杂度 - 折半...原创 2020-03-27 11:08:44 · 350 阅读 · 0 评论 -
Python 递归回溯法代码实现
# -*- coding:utf8 -*-"""递归回溯法:叫称为试探法,按选优条件向前搜索,当搜索到某一步,发现原先选择并不优或达不到目标时,就退回一步重新选择。经典问题:骑士巡逻"""import osimport sysimport timeSIZE = 5total = 0def print_board(board): # os.system('clea...原创 2020-03-27 11:06:49 · 743 阅读 · 3 评论 -
Python 递归算法代码实现
# -*- coding:utf8 -*-'''函数递归调用 - 函数直接或者间接的调用了自身1. 收敛条件2. 递归公式n! = n * (n-1)!f(n) = f(n-1) + f(n-2)1 1 2 3 5 8 13 21 34 55 ...'''from contextlib import contextmanagerfrom time import perf_co...原创 2020-03-27 11:02:26 · 521 阅读 · 0 评论 -
Python 贪婪算法代码实现
# -*- coding:utf8 -*-'''贪婪法:在对问题求解时,总是做出在当前看来是最好的选择不追求最优解,快速找到满意解'''class Thing(object): """物品""" def __init__(self, name, price, weight): self.name = name self.price = ...原创 2020-03-27 10:56:10 · 927 阅读 · 0 评论 -
Python 顺序查找算法代码实现
# -*- coding:utf8 -*-def seq_search(items, key): '''顺序查找''' for index, item in enumerate(items): if item == key: return index # 找到返回元素所处的下标 return -1 # 找不到返回-1print(...原创 2020-03-27 10:53:29 · 1238 阅读 · 0 评论 -
Python 简单选择排序算法代码实现
# -*- coding:utf8 -*-def select_sort(origin_items, comp=lambda x, y: x < y ): '''简单选择排序''' items = origin_items[:] for i in range(len(items) -1): min_index = i for j in...原创 2020-03-27 10:52:41 · 504 阅读 · 0 评论 -
Python 折半查找算法代码实现
# -*- coding:utf8 -*-def bin_search(items, key): '''折半查找''' start, end = 0, len(items) - 1 while start <= end: mid = (start + end) // 2 if key > items[mid]: ...原创 2020-03-27 10:51:56 · 1000 阅读 · 0 评论 -
Python 归并排序算法代码实现
# -*- coding:utf8 -*-def merge_sort(items, comp=lambda x, y: x <= y): """归并排序(分治法)""" if len(items) < 2: return items[:] mid = len(items) // 2 left = merge_sort(items[:m...原创 2020-03-27 10:47:22 · 339 阅读 · 0 评论 -
Python 高质量冒泡排序算法代码实现
# -*- coding:utf8 -*-def bubble_sort(origin_items, comp=lambda x, y: x > y): '''高质量冒泡排序''' items = origin_items[:] for i in range(len(items) - 1): swapped = False for j...原创 2020-03-27 10:43:21 · 130 阅读 · 0 评论 -
Python 哈希算法代码实现
# -*- coding:utf8 -*-'''哈希摘要 - 数字签名/指纹 - 单向哈希函数(没有反函数不可逆)应用领域:1. 数据库种的用户敏感信息保存成哈希摘要2. 给数据生成签名验证数据没有被恶意篡改3. 云存储服务的妙传功能(去重功能)'''class StreamHasher(): """摘要生成器""" def __init__(self, al...原创 2020-03-27 10:33:18 · 1079 阅读 · 0 评论