#!/usr/bin/python def BUBBLE_SORT(L, x, y): j = y while j>x: i = x while i<j: if L[i] > L[i+1]: temp = L[i] L[i] = L[i+1] L[i+1] = temp i = i+1 j = j-1 算法验证代码 #!/usr/bin/python import random import quik_sort import bubble_sort L = range(100) rand…
一.算法介绍 1. 算法是什么 算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出.如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题.不同的算法可能用不同的时间.空间或效率来完成同样的任务.一个算法的优劣可以用空间复杂度与时间复杂度来衡量. 2.时间复杂度 在计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间.这是一个关于代表算法输入值…
preface 常见的算法包括: 递归算法 二分法查找算法 冒泡算法 插入排序 快速排序 二叉树排序 下面就开始挨个挨个的说说原理,然后用Python去实现: 递归算法 一个函数(或者程序)直接或者间接调用自己,每调用一次后返回的值当作下一次执行的输入值,调用要有停止条件的(称为递归出口),不然不停的调用会造成栈溢出的. 递归算法运行效率,我们一般写程序的时候很少使用这样的算法. 算法的详解请看这里百度百科. 算法代码如下: def test(a): while a > 10: #递归终止条件(…
#!/usr/bin/python # module: quik_sort.py def PARTION(L,m,n): base = L[n] i = m-1 j = m while j<n: if L[j] < base: i = i+1 temp = L[i] L[i] = L[j] L[j] = temp j = j+1 i = i+1 temp = L[i] L[i] = L[n] L[n] = temp return i def QUIK_SORT(L,x,y): if (x>…
#!/usr/bin/python # define three list var. z1 = [1,2,3,4,5,6,7,"1st zhu"] z2 = ["2st zhu"] z3 = ["3st zhu"] counter = 0 def HANLTA(n, a, b, c): global counter if n==1: counter = counter +1 c.insert(0,a[0]) del a[0] return els…
python 的常见排序算法实现 参考以下链接:https://www.cnblogs.com/shiluoliming/p/6740585.html 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出.如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题.不同的算法可能用不同的时间.空间或效率来完成同样的任务.一个算法的优劣可以用空间复…
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let‘s go~~~ 1.排序算法的基本概念的讲解 时间复杂度:需要排序的的关键字的比较次数和相应的移动的次数. 空间复杂度:分析需要多少辅助的内存. 稳定性:如果记录两个关键字的A和B它们的值相等,经过排序后它们的位置没有发生交换,那么我们称这个排序算法是稳定的. 否则我们称这个排序算法是不稳定的.…
Python之排序算法:快速排序与冒泡排序 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/7828610.html 入坑(简称IT)这一行也有些年头了,但自老师讲课提过排序算法后几乎再也没写过排序算法,当然这也没有什么问题,实际的排序大多是将数据从数据库取出来前在数据库中就已经做好排序了,当然这个排序是SQL范畴的,如果真的需要在代码中排序也有对应的工具类来处理,就比如有Java中有Array.sort()来排列Array(数组类型),功能虽说有限制,但也…
说到排序算法,就不得不提时间复杂度和稳定性! 其实一直对稳定性不是很理解,今天研究python实现排序算法的时候突然有了新的体会,一定要记录下来 稳定性: 稳定性指的是 当排序碰到两个相等数的时候,他们的顺序会不会发生交换.其实对于一个整数数列的排序,是否交换元素没有任何影响. 但是: 如果有这样一串二元组: ( 2, 5) (1 ,6 ) ( 2 , 8 ) 我们要优先按照第一个元素排序,如果相同再按照第二个元素排序 我们先按照第二个元素进行排序之后再按照第一个元素进行排序, 里面有两个元组第…
目录 python之冒泡排序 算法原理 算法分析 代码实现 总结 python之冒泡排序 概念: 重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小.首字母从A到Z)错误就把他们交换过来.走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成 这个算法的名字由来是因为越大的元素会经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名"冒泡排序". 算法原理 冒泡排…