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

yipeiwu_com6年前Python基础

前两天刚装了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根据京东商品url获取产品价格

京东商品详细的请求处理,是先显示html,然后再ajax请求处理显示价格。 1.可以运行js,并解析之后得到的html 2.模拟js请求,得到价格 # -*- coding: utf...

pymongo实现控制mongodb中数字字段做加法的方法

本文实例讲述了pymongo实现控制mongodb中数字字段做加法的方法。分享给大家供大家参考。具体分析如下: 这个非常实用,比如我们需要给文章做访问统计,可以设置一个数字字段:hit,...

python3 tkinter实现添加图片和文本

python3 tkinter实现添加图片和文本

本文在前面文章基础上介绍tkinter添加图片和文本,在这之前,我们需要安装一个图片库,叫Pillow,这个需要下载exe文件,根据下面图片下载和安装。 下载完后直接双击安装exe,默...

在Python中实现贪婪排名算法的教程

 在较早的一遍文章中,我曾经提到过我已经写了一个属于自己的排序算法,并且认为需要通过一些代码来重新回顾一下这个排序算法。 对于我所完成的工作,我核实并且保证微处理器的安全。对非...

python画柱状图--不同颜色并显示数值的方法

python画柱状图--不同颜色并显示数值的方法

用python画柱状图容易,但是如何对不同柱子使用不同颜色呢?同时在柱子顶端显示精确数值? 主要用的方法为: atplotlib.pyplot.bar(left, height, wid...