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


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

  • 相关阅读:
    Paths on a Grid
    Three Kingdoms(优先队列+bfs)
    Factstone Benchmark(数学)
    C. Searching for Graph(cf)
    B. Trees in a Row(cf)
    String Successor(模拟)
    乘积最大的分解(数学)
    Kindergarten Election
    In 7-bit
    Friends
  • 原文地址:https://www.cnblogs.com/hellenism/p/3746833.html
Copyright © 2020-2023  润新知