Yujun's Blog

有序打印

有序打印:        给定一个类        class  Foo():                def  first():                        print("first",  end="  ")             

#leetcode   #算法   #简单  

计数排序

计数排序,  只适用于都是整数的列表如列表  list_datas  =  [88,  6,  57,  72,  60,  42,  83,  73,  48,  85]1、找到最小值和最大值,  分别为  6,882、建立计数器,从  {6:0,  7:0,  8:0,  ....  88:0}

#排序   #算法   #基础  

堆排序

堆是具备以下特征的一种特殊二叉树:        1、是一棵完全二叉树        2、每个节点的值均小于(大于)或等于它的两个孩子节点(如果存在)的值。        3、树根节点(称为堆顶元素)的值最小(称为小顶堆)或最大(成为大顶堆)。        所以,堆顶元素(即第一个元素)必为最大值

#排序   #基础  

归并排序

归并排序,先拆后合动画演示:                                  要对其“先拆后合”,理应通过下标值进行,假设有个长度为10的数组,则下标为  0123456789,拆的过程:        0123456789        01234  56789        0

#排序   #算法   #基础  

文本模式显示二叉树

                            A                _____/  \_____              /                          \            B                              C     

#算法   #二叉树  

二叉树的遍历

        若以  D、L、R分别表示根结点、左子树、右子树,理论上来说,二叉树的遍历方式有六种,但如果限定先左后右,则只有三种遍历方式:DLR(先序遍历)、LDR(中序遍历)、LRD(后续遍历)。另外,还有一种特殊的遍历方式:层次遍历                            A 

#算法   #基础   #二叉树  

希尔排序

希尔排序是对插入排序的优化。        插入排序在数据集”基本有序“时,效率最高,因此,希尔排序的优化思路便是先把数据集变成”基本有序“,  再进行插入排序。        那么如何变成”基本有序“?        1、对列表按一定的间隔(gap)进行分组,公式:gap  =  length  

#排序   #算法  

插入排序

插入排序:        类似于打扑克        把列表[0]当作一个有序数列,将第2个数插入到序列中正确的位置,        把列表[0,  1]当作一个有序数列,将第3个数插入到序列中正确的位置        ...时间复杂度:O(n^2)剖析:插入到某个位置(index),就说明[ind

#排序   #算法  

选择排序

选择排序:        遍历列表,找出最小的那个数,  和初始位置调换顺序        时间复杂度:O(n^2)迭代实现:def select_sort_iteration(datas): length = len(datas) for i in range(0, length -

#排序   #算法