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

    冒泡排序算法:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

    走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是

    因为越小的元素会经由交换慢慢“浮”到数列的顶端。

    冒泡排序算法的运作如下:

    1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

    2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

    3.针对所有的元素重复以上的步骤,除了最后一个。

    4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    C语言代码如下:

    BubbleSort.c文件如下:

    #include "BubbleSort.h"
    
    void BubbleSort(double fArray[],int nCount)
    {
        int i, length;
        double temp;
        if(nCount==1)
            return;
        length = nCount;
        while(length>1)
        {
            for(i=0;i<length-1;i++)
            {
                if(fArray[i]>fArray[i+1])
                {
                    temp = fArray[i];
                    fArray[i] = fArray[i+1];
                    fArray[i+1] = temp;
                }
            }
            length--;
        }
    }

    BubbleSort.h文件如下:

    #ifndef _BUBBLESORT_H_
    #define _BUBBLESORT_H_
    
    void BubbleSort(double fArray[],int nCount);
    
    #endif // _BUBBLESORT_H_

    Test.c文件如下:

    #include "BubbleSort.h"
    #include <stdio.h>
    
    int main()
    {
        double fArray[] = {1.1, 3.4, 2.6, 9.3, 4.2, 7.8, 8.6, 2.5, 7.3, 4.9};
        int i,length;
        length = sizeof(fArray)/sizeof(*fArray);
    
        BubbleSort(fArray, length);
    
        for(i=0;i<length;i++)
            printf("%f ",fArray[i]);
        return 0;
    }

    Python代码BubbleSort.py如下:

    #!/usr/bin/python
    
    numbers=[1,2,3,4,8,9,5,7]
    print numbers
    
    #Bubble
    length = len(numbers)
    while length > 1:
        x = 0
        while x < length-1:
            if numbers[x] > numbers[x+1]:
                v = numbers[x]
                numbers[x] = numbers[x+1]
                numbers[x+1] = v
            x+=1
        length-=1
    print numbers
  • 相关阅读:
    dockerfile构建的镜像中文乱码
    xshell+xmanager6破解
    mysql数据库本地登录无法查看到数据库
    Tomcat日志中文乱码问题解决
    Tomcat 启动很慢
    Supervisor-安装
    supervisor-monitor进程集中管理部署
    CeSi 进程集中管理部署
    [IOT]
    [SourceTree]
  • 原文地址:https://www.cnblogs.com/wufengv5/p/3086795.html
Copyright © 2011-2022 走看看