![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
英语渣i
我是一名python初学者,对学习python有很大的兴趣。
展开
-
Python数据结构(基数排序)
多关键字排序,假如现在有一个员工表要求按照薪资排序,年龄相同的员工按照年龄排序 先按照年龄进行排序,再按照薪资进行稳定的排序 基数排序就是先按照个位再按照十位等等排序 def radix_sort(li): max_num = max(li) # 确定最大值来确定循环次数(最大值99->2次,888->3次,10000->5次) it = 0 while 10 ** it <= max_num: ...原创 2022-01-20 17:20:47 · 319 阅读 · 0 评论 -
Python数据结构(桶排序)
首先将元素分在不同的捅中,再对每个同种的元素排序 def bucket_sort(li,n=100,max_num=10000): buckets = [[] for _ in range(n)] for var in li: # 创建捅 i = min(var // (max_num // n),n-1) # i 表示var放到几号桶里 buckets[i].append(var) # 把var加到桶里 # 保持桶内的顺...原创 2022-01-20 17:19:40 · 399 阅读 · 0 评论 -
Python数据结构(计数排序)
def count_sort(li,max_count): count = [0 for _ in range(max_count+1)] for val in li: count[val] += 1 li.clear() for ind,val in enumerate(count): for i in range(val): li.append(ind)# 测试import randomli = [rando.原创 2022-01-20 17:18:45 · 248 阅读 · 0 评论 -
Python数据结构(希尔排序)
def insert_sort_gap(li,gap): for i in range(gap,len(li)): tmp = li[i] j = i - gap while j >= 0 and li[j] > tmp: li[j+gap] = li[j] j -=gap li[j+gap] = tmpdef shell_sort(li): d = len(li.原创 2022-01-20 17:18:09 · 337 阅读 · 0 评论 -
Python数据结构(归并排序)
分解合并 def merge(li,low,mid,high): i = low # 右边箭头 j = mid + 1 # mid+1 箭头 ltmp = [] while i <= mid and j <= high: # 只要左右两边都有数 if li[i] < li[j]: ltmp.append(li[i]) i += 1 else: ...原创 2022-01-20 17:17:22 · 434 阅读 · 0 评论 -
Python数据结构(堆排序)
建立堆。 得到堆顶元素,为最大元素。 去掉堆顶元素,将堆最后一个元素放到堆顶,此时可通过一次调整重新使堆有序。 堆顶元素为第二大元素。 重复步骤3,直到堆变空。 代码实现def sift(li,low,high): # 下调函数的实现 """ 下调函数的实现 :param li:列表 :param low: 堆的根节点的位置 :param high:堆的最后一个元素位置 :return: ...原创 2022-01-20 17:16:06 · 487 阅读 · 0 评论 -
Python数据结构(查找)
最近好多天都没有更新,主要是在学习Python数据结构,哎,一言难尽,大一C语言数据结构没有好好学,导致现在几乎从头开始,学习算法的话,希望大家一定好好掌握python语言基础,没有基础的话,可能学习很困难,然后后面的话有很多算法,希望大家不仅仅是理解,更多是完全掌握,这样才能在以后的面试考试中对自己学的代码架构理解程度更高。 补充一点,我在学习数据结构时,又在前面的Python笔记中加了很多笔记,但是因为记录的比较乱,后面我会整理一下发出去,但是具体的时间待定,毕竟补充的...原创 2022-01-07 10:28:45 · 1492 阅读 · 0 评论 -
Python数据结构(时间和空间复杂度)
目录数据结构与算法(Python版)1.1 算法概念1.2 时间复杂度1.3 空间复杂度1.4 递归1.5 汉诺塔问题数据结构与算法(Python版) # 1. 入门1.1 算法概念概念: 算法就是一个计算过程,解决问题的方法程序 = 数据结构 + 算法1.2 时间复杂度 时间复杂度是用来估计算法运行时间的一个式子(单位) 一般来说,时间复杂度高的算法比复杂度低的算法慢 常见的时间复杂度(按照效率排序) O(1).原创 2022-01-07 10:20:44 · 812 阅读 · 0 评论