冒泡算法实现

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

  • 冒泡算法的原理

比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

算法代码实现一:

#冒泡排序算法1
def sortNum(numlist):
    _numlen = len(numlist)
    for _num1 in xrange(_numlen - 1,0,-1):
        for _num2 in xrange(_num1 - 1,-1,-1):
            if numlist[_num1] < numlist[_num2]:
                (numlist[_num1],numlist[_num2]) = (numlist[_num2],numlist[_num1])

if __name__ == ‘__main__‘:
    a = [1,4,-12,100,3,9,7,87,7,6,12,]

    print "sort previous: ",
    for iter in a:
        print iter,
    sortNum(a)

    print "\\\\nafter sorted: ",
    for i in a:
        print i,

算法代码实现二:

#冒泡算法二
def bubble(x,n):
    for i in range(n):
        for j in range(n-1):
            if x[i]<x[j]:
                t = x[i]
                x[i] = x[j]
                x[j] = t
    return x

list_t = [3,2,8,5,6,4,1,9,8,74]
print bubble(list_t,len(list_t))
时间: 2024-12-19 18:50:46

冒泡算法实现的相关文章

1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)

1014 C语言文法定义与C程序的推导过程  程序:冒泡算法C程序(语法树)1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图(完整图片) 1 #include <stdio.h> 2 3 main() 4 { 5 int i,j,temp; 6 int a[10]; 7 8 for(i=0;i<10;i++) 9 scanf

Python函数之冒泡算法

冒泡算法 1. data = [4,3,2,1] count = 0 for i in range(0, len(data)): #len(data)代表的是列表的总长度 #取外层函数的第一个值进行循环 for j in range(i + 1, len(data)): #把外层循环的第一个值跟所有的内层循环的值比较一遍,并跟换位置,沉低 count += 1 if data[j] < data[i]: tmp = data[j] data[j] = data[i] data[i] = tmp

阶乘求和与冒泡算法编程

编程题是写1!+2!+...+10!: 冒泡算法编程

python冒泡算法,lambda表达式

======================================================================== 冒泡算法 (个人理解类似于IP互换方案方式,或者被老师成为小鱼冒泡泡) 如何将列表内的数字进行排序呢? 方法1(需要递归) li =[5,4,3,2,6]                 #定义一个列表 print li                            #调试打印出列表 for m in range(4):          #通

关于冒泡算法

首先冒泡算法就是每次把最大的找出来,冒泡出去,但是有2种不同实现. 第一: public class Test12{     public static void main(String[] args){/*         int score[] = {67, 88, 45, 87, 29, 99, 109, 100};         for (int i = 0; i < score.length -1; i++){    //最多做n-1趟排序             for(int j

Python 第五篇:冒泡算法、系统标准模块

一:冒泡算法,也叫冒泡排序,其特点如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3.针对所有的元素重复以上的步骤,除了最后一个. 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. 使用python的冒泡排序完成一组无序队列的排序: data = [10,4,33,21,54,3,8,11,5,22,2,2,2,1,17,13,6] print(d

冒泡算法

冒泡算法基本思路: 对尚未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序.可以看出如果有 n 个元素,那么一共要进行 n-1 轮比较,第 i 轮要进行 j=n-i 次比较. 冒泡排序(Bubble Sort) 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,

Python之冒泡算法

有如下列表,要求从左到右顺序排序 li = [13,22,6,99,11] 实现方法: li = [13,22,6,99,11]print "##########原始数字顺序################"print liprint "#########开始第一次排序############3"for m in range(4):    num1 = li[m]    num2 = li[m+1]    if num1>num2:       tmp = l

算法一:冒泡算法

所谓冒泡算法就是把排序想像成水里的水泡,小的在上面,大的在下面 相邻的两个元素比较,如果前面的比后面的大,就交换. 如有一组数据:3,6,2,1,9 ->3,2,1,6,9 ->2,1,3,6,9 ->1,2,3,6,9 int main() { int a[] = {3,6,2,1,9}; for (int i = 0; i < sizeof(a)/4; i++) { for (int j = 0; j < sizeof(a)/4 - i - 1; j++) { if (a

C#冒泡算法复习

冒泡算法的意思:每一趟找到一个最小或最大的数放到最后面,比较总数的n-1次(因为比较是2个双双比较的) 第一层循环表示进行比较的次数,总共要比较(数的)-1次 (因为比较是2个双双比较的) 第二层循环表示第几趟循环,趟数等于比较数-趟数(第二趟再少比较一次,因为第一趟后最小的在最后面了) using System; namespace test { class Program { public static void Main() { //冒泡算法的意思:每一趟找到一个最小或最大的数放到最后面,