zoukankan      html  css  js  c++  java
  • [数据结构与算法]冒泡排序笔记

            /// <summary>
            /// 冒泡排序
            /// 
            /// 步骤:
            /// 从前往后依次比较两个相邻的气泡的重量,若发现轻的则向下(前),重的向上(后),即交换二者位置
            /// 第一趟比较,最重的气泡被换到了elem[n-1]处
            /// 第二趟比较,次最重的气泡被换到了elem[n-2]处
            /// 所以经过n-1趟或者气泡不再需要交换,则排序完成
            /// </summary>
            /// <param name="elements"></param>
            static void BubbleSort(int[] elements)
            {
                int temp = 0;     // 临时记录
    
                // 从前向后比较两个相邻气泡的大小,如果前者比后者大,则交换两者位置
                // 经过n-1趟冒泡或者某趟冒泡不再有元素交换,则排序完成
                for (int i = 0; i < elements.Length-1; i++)
                {
                    for (int j = 0; j < elements.Length - 1- i; j++)
                    {
                        if (elements[j + 1] < elements[j]) // 如果前者比后者大,则交换
                        {
                            temp = elements[j + 1];
                            elements[j + 1] = elements[j];
                            elements[j] = temp;
                        }
                    }
                }
    
            }

    稳定性:稳定.

    最坏时间复杂度:O(n^2)

    平均时间复杂度:O(n^2)

  • 相关阅读:
    hdu5666 BestCoder Round #80
    hdu5558 后缀数组
    jQuery backgroundColor的animate效果
    jQuery 效果函数
    jQuery 事件
    jQuery 选择器
    SQL按照指定顺序对字段进行排序
    SQL union和union all的区别
    SQL表值函数和标量值函数的区别
    JavaScript Cookies
  • 原文地址:https://www.cnblogs.com/hellenism/p/3746833.html
Copyright © 2011-2022 走看看