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

    起泡排序算法思路

    有序概念

    在由一组整数组成的序列A[0, n - 1]中,满足A[i - 1] < A[i]的相邻元素称作顺序的;否则是逆序的。不难看出,有序序列中每一对相邻元素都是顺序的,亦即,对任意1 < i < n都有A[i - 1] < A[i];反之,所有相邻元素均顺序的序列,也必然整体有序。

    思路

    由有序序列的上述特征,我们可以通过不断改善局部的有序性实现整体的有序:从前向后依次检查每一对相邻元素,一旦发现逆序即交换二者的位置。对于长度为n的序列,共需做n - 1次比较和不超过n - 1次交换,这一过程称作一趟扫描交换。每一趟扫描都至少会有一个元素就位。

    排序过程中,所有元素朝各自最终位置亦步亦趋的移动过程,犹如气泡在水中的上下沉浮,起泡排序(bubble sort)算法也因此得名。

    起泡排序实现

    void bubble_sort(int data[], int n)
    {
        int sorted = 0; // false
        int i;
    
        while (!sorted)
        {
            sorted = 1;
            for (i = 1; i < n; i++)
            {
                if (data[i-1] > data[i])
                {
                    int temp = data[i];
                    data[i] = data[i-1];
                    data[i-1] = temp;
                    sorted = 0;
                }
            n--; 
        }
    }
  • 相关阅读:
    Linux基础文件打包
    Linux基础文件查找
    Apache的三种工作模式及相关配置
    elasticsearch启动错误整理
    Zabbix-agentd错误整理
    Nginx编译安装
    PHP编译安装
    Zabbix编译安装(全)
    Chetsheet: 2017 01.01 ~ 01.31
    Cheatsheet: 2016 12.01 ~ 12.31
  • 原文地址:https://www.cnblogs.com/furzoom/p/7710300.html
Copyright © 2011-2022 走看看