Python选择排序、冒泡排序、合并排序代码实例


Posted in Python onApril 10, 2015

前两天刚装了python 3.1.1, 禁不住技痒写点code。
1.选择排序

>>> def SelSort(L):

    length=len(L)

    for i in range(length-1):

        minIdx=i

        minVal=L[i]

        j=i+1

        while j<length:

            if minVal>L[j]:

                minIdx=j

                minVal=L[j]

            j=j+1

        L[i],L[minIdx]=L[minIdx],L[i]

    return L

2.冒泡排序

>>> def bubSort(L):

    swapped=True

    while swapped:

        swapped=False

        for i in range(len(L)-1):

            if L[i]>L[i+1]:

                L[i],L[i+1]=L[i+1],L[i]

                swapped=True

    return L

3.合并排序
>>> def merge(left,right):

    result=[]

    i,j=0,0

    while i<len(left) and j<len(right):

        if left[i]<=right[j]:

            result.append(left[i])

            i=i+1

        else:

            result.append(right[j])

            j=j+1

    result+=left[i:]

    result+=right[j:]

    return result
>>> def mergesort(L):

    if len(L) < 2:

        return L

    else:

        middle = int(len(L)/2)

        left = mergesort(L[:middle])

        right = mergesort(L[middle:])

        return merge(left, right)

Python 相关文章推荐
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python中一些不为人知的基础技巧总结
May 19 Python
使用Flask集成bootstrap的方法
Jul 24 Python
【python】matplotlib动态显示详解
Apr 11 Python
对python中UDP,socket的使用详解
Aug 22 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
Dec 11 Python
基于python和flask实现http接口过程解析
Jun 15 Python
python安装后的目录在哪里
Jun 21 Python
python 生成正态分布数据,并绘图和解析
Dec 21 Python
Python字符串中查找子串小技巧
Apr 10 #Python
简单介绍Ruby中的CGI编程
Apr 10 #Python
详细介绍Ruby中的正则表达式
Apr 10 #Python
对于Python的Django框架部署的一些建议
Apr 09 #Python
Python线程中对join方法的运用的教程
Apr 09 #Python
在Python的Flask框架下使用sqlalchemy库的简单教程
Apr 09 #Python
详解Python中的正则表达式的用法
Apr 09 #Python
You might like
编译问题
2006/10/09 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python ATM功能实现代码实例
2020/03/19 Python
Python sorted排序方法如何实现
2020/03/31 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
怎样声明子类
2013/07/02 面试题
干部个人考察材料
2014/12/24 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技