我是靠谱客的博主 单身画笔,最近开发中收集的这篇文章主要介绍python实现冒泡排序完整算法_用Python实现排序算法――冒泡排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

正在学习Python,然后呢,也想复习一下算法,所以采取这样的方式,一举两得。后面会用python逐步完成常用算法,算是学习笔记了。

贴代码之前还是先描述算法原理。冒泡的原理(以下描述为降序排序)是:

1、比较a[0]和a[1],若a[0]>a[1],则保持位置不变;若a[0]

2、然后比较a[1]和a[2],一直到a[n-1]。这样最小值就会在列表的最后。

3、第二轮遍历列表,依旧a[0]开始比较,到a[n-2]。如此重复,每一轮遍历都能选出一个次小值。

4、当遍历第n轮时排序完成。

Python实现:

# -*- coding: UTF-8 -*-

def bubbleSort(sort_list):

list_len = len(sort_list)

if list_len < 2:

return sort_list

for i in range(list_len):

for j in range(list_len-i-1):

if sort_list[j]>sort_list[j+1]:

sort_list[j],sort_list[j+1] = sort_list[j+1],sort_list[j]

return sort_list

调试的时候,意外学到了一些知识,首先说我是如何调试的。我把这个函数保存为一个模块BubbleSort.py,然后在shell界面中执行:

>>> import BubbleSort

>>> test = [22,2,14,6,88,45,42,54,410]

>>> BubbleSort.bubbleSort(test)

[2, 14, 6, 22, 45, 42, 54, 88, 410]

发现结果是不对的,目测只迭代了一次,经查看代码发现第二个迭代中j写成了i,修改之后重复上述操作,结果依然不对,无论我导入多少遍结果都还是一样的。后来我想得可能导入的内容没有被更新,于是google了一下,确实是应该用reload(module)函数重新加载模块:

>>> import BubbleSort

>>> reload(BubbleSort)

>>> test = [22,2,14,6,88,45,42,54,410]

>>> BubbleSort.bubbleSort(test)

[2, 6, 14, 22, 42, 45, 54, 88, 410]

以上就是python冒泡的简单实现。

最后

以上就是单身画笔为你收集整理的python实现冒泡排序完整算法_用Python实现排序算法――冒泡排序的全部内容,希望文章能够帮你解决python实现冒泡排序完整算法_用Python实现排序算法――冒泡排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部