[数据结构与算法]冒泡排序笔记

        /// <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)