python冒泡排序简单实现方法

本文实例讲述了python冒泡排序简单实现方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/python
import random
def bubble_sort(data):
  length = len(data)
  for i in range(len(data) - 1):
   for j in range(len(data) - 1):
    if (data[j] < data[j + 1]):
        tmp = data[j]
        data[j] = data[j + 1]
        data[j + 1] = tmp
r = random.Random()
data = []
for n in range(0, 20):
  data.append(r.randint(1, 300))
print data, len(data)
bubble_sort(data)
print data

运行结果如下:

[115, 14, 246, 125, 94, 78, 275, 163, 64, 72, 245, 1, 97, 53, 86, 270, 137, 69, 74, 182] 20
[275, 270, 246, 245, 182, 163, 137, 125, 115, 97, 94, 86, 78, 74, 72, 69, 64, 53, 14, 1]

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • 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编程实现希尔排序

    观察一下"插入排序":其实不难发现她有个缺点: 如果当数据是"5, 4, 3, 2, 1"的时候,此时我们将"无序块"中的记录插入到"有序块"时,估计俺们要崩盘,每次插入都要移动位置,此时插入排序的效率可想而知. shell根据这个弱点进行了算法改进,融入了一种叫做"缩小增量排序法"的思想,其实也蛮简单的,不过有点注意的就是: 增量不是乱取,而是有规律可循的. 希尔排序时效分析很难,关键码的比较次数与记录移

  • python选择排序算法的实现代码

    1.算法:对于一组关键字{K1,K2,-,Kn}, 首先从K1,K2,-,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换:然后从K2,K3,- ,Kn中选择最小值 Kz,再将Kz与K2对换.如此进行选择和调换n-2趟,第(n-1)趟,从Kn-1.Kn中选择最小值 Kz将Kz与Kn-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成. 2.python 选择排序代码: 复制代码 代码如下: def selection_sort(list2):    for i in

  • python 快速排序代码

    复制代码 代码如下: def quick_sort(ls): return [] if ls == [] else quick_sort([y for y in ls[1:] if y < ls[0]]) + [ls[0]] + quick_sort([y for y in ls[1:] if y >= ls[0]]) if __name__ == '__main__': l1 = [3,56,8,1,34,56,89,234,56,231,45,90,33,66,88,11,22] l2 =

  • python sort、sorted高级排序技巧

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorted()方法.它返回一个新的list,新的list的元素基于小于运算符(__lt__)来排序. 复制代码 代码如下: >>> sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5] 你也可以使用list.sort()方法来排序,此时list本身将被修改.通常此方法不如s

  • python快速排序代码实例

    一. 算法描述: 1.先从数列中取出一个数作为基准数.2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边.3.再对左右区间重复第二步,直到各区间只有一个数.  二.python快速排序代码 复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*- def sub_sort(array,low,high):    key = array[low]    while low < high:        while low <

  • python实现忽略大小写对字符串列表排序的方法

    本文实例讲述了python实现忽略大小写对字符串列表排序的方法,是非常实用的技巧.分享给大家供大家参考.具体分析如下: 先来看看如下代码: string = ''' the stirng Has many line In THE fIle jb51 net ''' list_of_string = string.split() print list_of_string #将字符串分离开,放入列表中 print '*'*50 def case_insensitive_sort(liststring

  • python 算法 排序实现快速排序

    QUICKSORT(A, p, r)是快速排序的子程序,调用划分程序对数组进行划分,然后递归地调用QUICKSORT(A, p, r),以完成快速排序的过程.快速排序的最差时间复杂度为O(n2),平时时间复杂度为O(nlgn).最差时间复杂度的情况为数组基本有序的时候,平均时间复杂度为数组的数值分布较为平均的时候.在平时情况下快速排序跟堆排序的时间复杂度都为O(nlgn),但是快速排序的常数项较小,所以要优于堆排序. PARTITION(A, p, r) 复制代码 代码如下: x ← A[r]

  • python实现的各种排序算法代码

    复制代码 代码如下: # -*- coding: utf-8 -*-# 测试各种排序算法# link:www.jb51.net# date:2013/2/2 #选择排序def select_sort(sort_array):    for i, elem in enumerate(sort_array):        for j, elem in enumerate(sort_array[i:]):            if sort_array[i] > sort_array[j + i]

  • python 实现插入排序算法

    复制代码 代码如下: #!/usr/bin/python def insert_sort(array): for i in range(1, len(array)): key = array[i] j = i - 1 while j >= 0 and key < array[j]: array[j + 1] = array[j] j-=1 array[j + 1] = key if __name__ == "__main__": array = [2, 4, 32, 64,

随机推荐