python实现冒泡排序

代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 def bubbleSort(numbers):
    for j in xrange(len(numbers),-1,-1):
        for i in xrange(0,j-1,1):
            if numbers[i] > numbers[i+1]:
                numbers[i],numbers[i+1] = numbers[i+1],numbers[i]
        print numbers

def main():
    numbers = [23,12,9,15,6]
    bubbleSort(numbers)

if __name__ == '__main__':
    main()

输出结果为

[12, 9, 15, 6, 23]
[9, 12, 6, 15, 23]
[9, 6, 12, 15, 23]
[6, 9, 12, 15, 23]
[6, 9, 12, 15, 23]
[6, 9, 12, 15, 23]

时间: 2024-10-31 17:59:37

python实现冒泡排序的相关文章

内部排序:冒泡排序和选择排序

前言 之所以把冒泡排序和选择排序放在一起,是因为二者的实现代码很相似,而且都是最基本的排序方式,非常容易理解和实现.当然,如果仅仅是为了讲述这两种排序方式,那也根本没必要写这篇博文了.和上篇博文一样,我会在冒泡排序和选择排序原始代码的基础上给出一些改进和优化,这才是本文的重点所在. 原始冒泡排序 冒泡排序的思想很简单,如果要求排序后序列中元素按照从小到大的顺序排列,则冒泡排序的步骤如下: 1.依次比较序列中相邻的两个元素,将较大的放在后面,这样一趟比较后,最大的元素就放在了最后的一个位置: 2.

经典算法(1) 冒泡排序的三种实现

冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N. 1.比较相邻 的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换. 2.这样对数组的第0个数据到 N-1个数据进行一次遍历后,最大的一个数据就"沉"到数组第N-1个位置. 3.N=N-1,如果N不为0就 重复前面二步,否则排序完成. 按照定义很容易写出代码: //冒泡排序1 void BubbleSort1(int a[], int n) { int i, j; for (i = 0; i < n;

php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】_php技巧

本文实例讲述了php实现有序数组打印或排序的方法.分享给大家供大家参考,具体如下: 有序的数组打印或排序对于php来讲非常的简单了这里整理了几个不同语言的做法的实现代码,具体的我们一起来看这篇php中有序的数组打印或排序的例子吧. 最近有个面试题挺火的--把2个有序的数组打印或排序,刚看到这个题的时候也有点蒙,最优的算法肯定要用到有序的特性. 思考了一会发现也不是很难,假如数组是正序排列的,可以同时遍历2个数组,将小的值进行排序,最后会遍历完一个数组,留下一个非空数组,而且剩下的值肯定大于等于已

Python实现冒泡,插入,选择排序简单实例_python

本文所述的Python实现冒泡,插入,选择排序简单实例比较适合Python初学者从基础开始学习数据结构和算法,示例简单易懂,具体代码如下: # -*- coding: cp936 -*- #python插入排序 def insertSort(a): for i in range(len(a)-1): #print a,i for j in range(i+1,len(a)): if a[i]>a[j]: temp = a[i] a[i] = a[j] a[j] = temp return a #

《python 与数据挖掘 》一 2.6 上机实验

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第2章,第2.6节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 2.6 上机实验 1.实验目的掌握Python流程控制语句,合理运用循环进行程序设计.掌握Python数据结构,并能熟练运用进行程序设计.掌握Python的文件读写,并能编写读取数据集的程序.2.实验内容实验一冒泡排序是一个经典的排序算法,任意给定一个Python的列表SList ,要求使用Python实现冒泡排

python冒泡排序算法的实现代码_python

1.算法描述:(1)共循环 n-1 次(2)每次循环中,如果 前面的数大于后面的数,就交换(3)设置一个标签,如果上次没有交换,就说明这个是已经好了的. 2.python冒泡排序代码 复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- def bubble(l):    flag = True    for i in range(len(l)-1, 0, -1):        if flag:             flag = False

我的冒泡排序(python)为何实现不了?

问题描述 我的冒泡排序(python)为何实现不了? 这是我根据描述写的代码: def bubblesort(l): for ij in enumerate(l[:-1]): for xy in enumerate(l[i+1:]): if j > y: tem = l[i] l[i] = l[x] l[x] = tem return l 这是豆瓣上找到的代码: def bubble(xn):"" 冒泡排序,x是列表,n是列表长度"" for i in ran

Python选择排序、冒泡排序、合并排序代码实例_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]:                 min

Python冒泡排序注意要点实例详解_python

冒泡排序注意三点: 1. 第一层循环可不用循环所有元素. 2.两层循环变量与第一层的循环变量相关联. 3.第二层循环,最终必须循环集合内所有元素. 示例代码一: 1.第一层循环,只循环n-1个元素. 2.当第一层循环变量为n-1时,第二层循环所有元素. s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5] # bubble_sort for i in range(0, len(s) - 1): for j in range(i + 1, 0, -1): if s[j] < s[j