![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
wcc8848
一名小忧伤的研究僧。
展开
-
python用栈实现括号匹配
1.栈是一种先进后出的序列,2.栈主要由栈顶,栈底,两个部分:第一步栈的创建:class Stack: def __init__(self): self.stack = [] def push(self,element): self.stack.append(element) def pop(self): return self.stack.pop() def get_top(self): if l原创 2022-01-03 23:12:56 · 927 阅读 · 0 评论 -
python实现堆排序
堆排序,首先要理解堆的概念,堆是由树组成,首先需要涉及到的概念就是,树,二叉树,完全二叉树。,大根堆,小根堆,可根据别的网站搜索或者https://www.jb51.net/article/216519.htm访问可知上述的答案:然后 大根堆:所有的孩子节点没有自己大的的完全二叉树:小根堆:所有的孩子节点都比自己大的完全二叉树:然后了解堆的自我调整:#构建一个堆#1.建立堆#2.得到堆顶元素,为最大元素#3.去掉堆顶,将堆最后一个元素放到堆顶,此时可以通过..原创 2022-01-03 22:56:50 · 6566 阅读 · 2 评论 -
python实现插入排序
算法思想:插入排序,首先是将列表表示成一副扑克,def Insert_Sort(li): for i in range(1,len(li)):##表示摸到手里的牌的下标 j = i-1##表示手里的牌的下标 temp = li[i] #手里的牌存起来 while j >= 0 and li[j] > temp:###手里的牌>摸到手里的 li[j+1] = li[j]##现在手里的牌向后移动原创 2022-01-02 20:53:11 · 416 阅读 · 0 评论 -
python实现选择排序
算法思想:以从小到大举例,从所有数据中找到最小的数放置在元素的第一个位置,再从第二项开始,待排序的区域选择一个最小的数据放到第二个位置,依次类推,直到排序完成具体看程序代码,最简版:def Select_Sort(li): new_list = [] ##设置一个恐列表,用来存放最小值 for i in range(len(li)):#遍历原始列表 min_val = min(li)##选择出原始列表的最小值 new_list.appe原创 2021-12-29 19:43:33 · 435 阅读 · 0 评论 -
python实现冒泡排序
def Bubble_Sort(li): for i in range(len(li)-1):##总共执行的趟数 for j in range(len(li)-1-i):##每一趟需要走过的元素数量 if li[j]>li[j+1]:##判断大小 li[j],li[j+1] =li[j+原创 2021-12-29 17:12:03 · 875 阅读 · 0 评论 -
python实现二分查找
实现二分查找的前提,是将序列首先经过排序,排序之后,进行二分查找:首先找到首元素和尾元素,然后找到中间元素,代码如下:def binary_search(li,val): left =0 right = len(li)-1 while left<= right: mid = (left+right)//2 if li[mid]==val: return mid elif li[mi..原创 2021-12-28 20:45:57 · 252 阅读 · 0 评论 -
python实现顺序查找
1.顺序查找也成为线性查找,其核心思想是遍历列表挨个查找元素:def linear_search(li,val): for ind, v in enumerate(li): # print(ind) # print(ind,v) if v == val: return ind return Noneimport randomli = list(range(100))random.shuffle(li)原创 2021-12-28 14:24:28 · 1676 阅读 · 0 评论