首页 > 代码库 > python版冒泡排序

python版冒泡排序

从第一个元素开始,对数组中两两相邻的元素比较,将值较小的元素放在前面,值较大的元素放在后面,一轮比较完毕,一个最大的数沉底成为数组中的最后一个元素,一些较小的数如同气泡一样上浮一个位置。n个数,经过n-1轮比较后完成排序。

假定有下标为0nn+1个数的序列,要求按升序排列,实现的步骤如下:

(1)从第0个元素开始与后一个比较,如果比后大两元素交换,依次比较到第n个元素,最终将最大的数换入第n个元素中,a(n)不动

(2)重复(1) ,依次比较到第n-1个元素,最终将最大的数换入第n-1个元素中,a(n-1)不动

(3)重复(1) ,依次比较到第n-2个元素,最终将最大的数换入第n-2个元素中,a(n-2)不动

………………………………………

(n)a(0)a(1)比较,如果a(0)大,与a(1)交换, a(0)最小


代码实现:

#coding:utf-8


arr = []


#冒泡排序函数

def BubbleSort():

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

for j in range(len(arr)-i-1):

if arr[j+1] < arr[j]: #相邻两数比较

arr[j+1],arr[j] = arr[j],arr[j+1] #交换两个数


#打印函数

def PrintAns():

for i in arr:

print(i,end=" ") #以空格分开来输出


#主函数

sum = int(input("请输入需要测试的个数:"))

str_in = input("以空格分开%d个数据:" %sum) #输入的是一串字符串,为以空格为间隔输入打下基础

for i in str_in.split(): #以空格为间隔取str_in中的值

arr.append(int(i))   #先把i对应转换成int类型,然后再添加到arr列表

BubbleSort() #调用BubbleSort()函数

PrintAns()   #调用PrintAns()函数



技术分享

技术分享







本文出自 “一颗正在成长的小树” 博客,请务必保留此出处http://growing2015.blog.51cto.com/12006344/1918498

python版冒泡排序