算法
小人物哎
希望我们可以一起学习,我是小白。
展开
-
python排序--堆排序
树的概念树是一种数据结构 比如:目录结构树是一种可以递归定义的数据结构树是由n个节点组成的集合:如果n=0,那这是一棵空树如果n>0,那存在1个节点作为树的根节点,其他节点可以分为m个集合,每个集合本身又是一颗树一些概念根节点树的深度(高度)树的度孩子节点/父节点子树二叉树–度不超过2的树二叉树 度不超过2的树每个节点最多有两个孩子节点两个孩子节点被区分为...原创 2019-10-29 22:36:36 · 158 阅读 · 0 评论 -
python--计数算法
计数排序原理通过计数来排序缺点:需要确定范围,不能排小数代码实现:def count_sort(li,max_count=100): count = [0 for i in range(max_count+1)] # 生成101个0的列表 for val in li: count[val] += 1 # 循环,把li中的值计数,计算...原创 2019-10-19 21:42:10 · 424 阅读 · 0 评论 -
二分法和冒泡排序
先放一个网址,可以看到冒泡,选择,插入排序的过程 冒泡-选择-插入排序二分法(基于有序列表)前言:二分法是一个优化算法,在一个基于有序列表中,列表从1到10000,如果要找一个8899的数字,不用二分法的话,就是循环从一到10000,直到找到8899.但是,有没有想过,前5000个都比8899小,所以能不能直接第一次就判断哪些值小于我需要的值呢?二分法就是基于这样的场景出现的,一次砍掉一半数...原创 2019-09-23 09:49:28 · 778 阅读 · 0 评论 -
选择排序
选择排序选择排序动画演示地址一趟排序记录最小的数,放到第一个位置再一趟排序记录列表无序区最小的数,反到第二个位置算法关键点:有序去和无序区、无序区最小数的位置def select_sort_simple(li): for i in range(len(li)): min_pos = i for j in range(i+1, len(li)-1): if li[j] &l...原创 2019-09-24 12:12:47 · 189 阅读 · 0 评论 -
插入排序
插入排序理念:插入排序类似于大多数人安排扑克牌的方式。def insert_sort(li): for i in range(1,len(li)): tmp = li[i] j = i - 1 while j >= 0 and li[j] > tmp: li[j+1] = li[j] j -= 1 li[j+1] = tmp外循环执行N-1次但内...原创 2019-09-25 16:17:19 · 122 阅读 · 0 评论 -
python版快速排序
快速排序原理免费快速排序视频快速排序思路:取一个元素p(第一个元素),使元素p归位;列表被p分成两部分,左边都比p小,右边都比p大;递归完成排序import randomdef partition(li, left, right): tmp = li[left] while left < right: while left < right and li[rig...原创 2019-09-28 23:24:20 · 110 阅读 · 0 评论