zoukankan      html  css  js  c++  java
  • 冒泡排序

    1 概念

    冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

    2 算法描述

    1. 比较相邻的元素。如果第一个比第二个大,就交换它们两个;
    2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
    3. 针对所有的元素重复以上的步骤,除了最后一个;
    4. 重复步骤1~3,直到排序完成。

    3动图演示

    4代码实现

    C语言实现

    function bubbleSort(arr) {
        varlen = arr.length;
        for(vari = 0; i < len - 1; i++) {
            for(varj = 0; j < len - 1 - i; j++) {
                if(arr[j] > arr[j+1]) {        // 相邻元素两两对比
                    vartemp = arr[j+1];        // 元素交换
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        returnarr;
    }
    

    python实现

    def bubble_sort(alist):
        length = len(alist)
        for i in range(length - 1):
            # i表示比较多少轮
            for j in range(length - i - 1):
                # j表示每轮比较的元素的范围,因为每比较一轮就会排序好一个元素的位置,
                # 所以在下一轮比较的时候就少比较了一个元素,所以要减去i
                if alist[j] > alist[j + 1]:
                    alist[j], alist[j + 1] = alist[j + 1], alist[j]
    
    def bubbleSort(arr):
        n = len(arr)
     
        # 遍历所有数组元素
        for i in range(n):
     
            # Last i elements are already in place
            for j in range(0, n-i-1):
     
                if arr[j] > arr[j+1] :
                    arr[j], arr[j+1] = arr[j+1], arr[j]
     
    arr = [64, 34, 25, 12, 22, 11, 90]
     
    bubbleSort(arr)
     
    print ("排序后的数组:")
    for i in range(len(arr)):
        print ("%d" %arr[i]),
    
  • 相关阅读:
    特性标签的灵活使用
    算法实例题
    网络抓包工具
    vs2010
    .NET Remoting vs Web Service
    电子商务网站设计学习
    EXCEL导出
    C# 16进制与字符串、字节数组之间的转换
    DES加密
    DataGridView生成CSV,XML 和 EXCEL文件
  • 原文地址:https://www.cnblogs.com/duxiangjie/p/13986832.html
Copyright © 2011-2022 走看看