-
Python 二叉树的查找算法和节点插入
二叉树的查找,需要先排序好二叉树,最终结果如图,排序算法参照上篇:https://www.link-nemo.com/u/10025/post/66629 实例GitHub地址:https://github.com/tzz2015/DTF/tree/develop一.查找算法,如果要查找的数据小于当前节点,则向二叉树的左支查询,否者向右查询。代码如下:#搜索defdo_sea......2,406 0 2018-12-05 18:11
-
Python 二叉树排序
一.。二叉树定义: 二叉查找树(BinarySearchTree),又称为二叉搜索树、二叉排序树。其或者是一棵空树;或者是具有以下性质的二叉树: 1.若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值 2.若右子树不空,则右子树上所有结点......2,127 0 2018-12-03 21:14
-
python 顺序查找(线性查找)
顺序查找是指从第一个元素开始查找,知道扎到对于的元素,返回元素的索引,如果没有找到返回-1。如果要找到的数据的长度很长,效率就会极低。下面是一个简单的例子。"""顺序查找又称为线性查找,是一种最简单的查找方法。适用于线性表的顺序存储结构和链式存储结构。该算法的时间复杂度为O(n)。"""defsequential_search(lis,key):exit_ind......1,636 0 2018-12-03 11:16
-
Python 二分查找算法
"""递归二分查找算法将排序好的数组(比如从小到大)或队列一分二为,选取中间值比较如果要查找的数值比中间值大,说明要查找的数值在前半部分,相反在后半部分,继续将前半部分(或后半部分)一分为二,如此循环,直到找出中间值为索要寻找的数值"""numberArray=[1,3,5,7,9,11,13]defbinary_search(array,search_data,start_index,end_i......1,608 0 2018-09-21 00:48
-
python基础算法---快速排序
快速排序(英语:Quicksort),又称划分交换排序(partition-exchangesort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有元素比基准值小的摆放......1,965 0 2018-02-06 22:55
-
python基础算法---插入排序
#插入排序(英语:InsertionSort)是一种简单直观的排序算法。#它的工作原理是通过构建有序序列,对于未排序数据,#在已排序序列中从后向前扫描,找到相应位置并插入。#插入排序在实现上,在从后向前扫描过程中,#需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。个人理解,从头到尾,拿第n个元素跟第n-1个元素对比,如果第n个大于(或小于)第n-1个元素,则需要进行数据交换,外部循环需要......1,307 0 2018-02-03 15:22
-
python基础算法---选择排序
#选择排序(Selectionsort)是一种简单直观的排序算法。#它的工作原理如下。首先在未排序序列中找到最小(大)元素,#存放到排序序列的起始位置,然后,再从剩余未排序元素中继#续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,#直到所有元素均排序完毕。mublist=[22,89,78,66,15,29,87,55,43]defselection_sort(list):#执行n-1次......1,665 0 2018-02-03 10:54
-
Python基础算法---冒泡排序
#冒泡排序算法的运作如下:##比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。#对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。#针对所有的元素重复以上的步骤,除了最后一个,总共需要重复n-1次。#持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡算法需要执行n-1次排序,时间复杂度O(n^2),以下图代表一次交......1,775 0 2018-02-03 10:11