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)

  • 相关阅读:
    tensorflow学习笔记13
    Java——内部类
    Java——枚举
    Java——代码块
    Java——static
    Java——接口
    Java——final
    Java——权限修饰符
    Java——多态
    Java——抽象类
  • 原文地址:https://www.cnblogs.com/hellenism/p/3746833.html
Copyright © 2011-2022 走看看