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)


相关文章

Django 2.0版本的新特性抢先看!

前言 2017年12月2日,Django官方发布了2.0版本,成为多年来的第一次大版本提升,那么2.0对广大Django使用者有哪些变化和需要注意的地方呢? 一、Python兼容性 D...

总结Python编程中函数的使用要点

为何使用函数 最大化代码的重用和最小化代码冗余 流程的分解 编写函数 >>def语句 在Python中创建一个函数是通过def关键字进行的,def语句将创建一个函...

PyTorch 解决Dataset和Dataloader遇到的问题

今天在使用PyTorch中Dataset遇到了一个问题。先看代码 class psDataset(Dataset): def __init__(self, x, y, trans...

Python编程之gui程序实现简单文件浏览器代码

Python编程之gui程序实现简单文件浏览器代码

本文主要分享了关于在python中实现一个简单的文件浏览器的代码示例,代码及展示如下。 #!/usr/bin/env python # -*- coding: UTF-8 -*-...

python生成器/yield协程/gevent写简单的图片下载器功能示例

本文实例讲述了python生成器/yield协程/gevent写简单的图片下载器功能。分享给大家供大家参考,具体如下: 1、生成器: '''第二种生成器''' # 函数只有有yiel...