python 排序

本文通过Python实现并演示了三种经典排序算法:冒泡排序、插入排序和希尔排序。每种算法都详细介绍了其实现过程,并通过生成随机数列表来测试这些排序算法的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排序

#!/usr/bin/env python
#! coding: utf-8

import random

def getrandomdata(num):
    alist = [random.randint(1,1000) for i in range(num)]
    return alist

# Bubble Sort
def bubble(alist):
    length = len(alist)
    for i in range(length-1,0,-1):
        for j in range(i):
            if alist[j] > alist[j+1]:
                alist[j],alist[j+1] = alist[j+1], alist[j]
    return alist

# Insertion Sorting
def insert(alist):
    length = len(alist)
    for i in range(length-1):
        for j in range(i+1,length):
            if alist[i] > alist[j]:
                alist[i], alist[j] = alist[j], alist[i]
    return alist

# Shell sort
def shell(alist):
    length = len(alist)
    dist = length/2
    while dist > 0:
        for i in range(0, dist):
            for j in range(i, length-dist, dist):
                for k in range(j+dist, length, dist):
                    if alist[k] < alist[j]:
                        alist[j], alist[k] = alist[k], alist[j]
        dist = dist/2
    return alist

if __name__ == '__main__':
    num = int(raw_input("Please input the length of list(between 0,10000):"))
    alist = getrandomdata(num)
    bubblelist = bubble(alist)
    alist = getrandomdata(num)
    insertlist= insert(alist)
    alist = getrandomdata(num)
    shelllist = shell(alist)

    print "Bubblelist is ", bubblelist
    print "Insertionlist is ", insertlist
    print "Shelllist is ", shelllist
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值