zoukankan      html  css  js  c++  java
  • 冒泡算法

    代码
    using System;
    using System.Collections.Generic;

    public class MyClass
    {
        
    public static void Main()
        {
            
    int[] data={1,2,3,4,5,6,7,8,9};
            BubbleSort(data);
            Console.ReadLine();
        }
        
        
    public static void BubbleSort(int[] data)
        {
            
    int temp;

            
    for(int i=0;i<data.Length;i++)
            {        
                
    bool result=true;
                
    for(int j=data.Length-1;j>i;j--)
                {
                    
    if(data[j-1]>data[j])
                    {
                        result
    =false;
                        temp
    =data[j-1];
                        data[j
    -1]=data[j];
                        data[j]
    =temp;
                    }
                }
                
    if(result)
                {
                    
    break;
                }
            }
            
    for(int i=0;i<data.Length;i++)
            {
                Console.WriteLine(data[i].ToString());
            }
        }
    }

    冒泡排序算法的最好情况是记录已全部排好序,这时,循环n-1次,每次循环都因没有数据交换而退出。因此,冒泡排序算法在最好情况下的时间复杂度为O(n)。冒泡排序算法的最坏情况是记录全部逆序存放,这时,循环n-1次,总比较次数为:
    总的移动次数为比较次数的3倍,因为被进行一次比较,需要进行3次移动。因此,冒泡排序算法在最坏情况下的时间复杂度为O(n2)。
    冒泡排序算法只需要一个辅助空间用于交换记录,所以,冒泡排序算法是一种稳定的排序方法。

  • 相关阅读:
    前端工程师如何打发闲余时光?(转)
    比较好的前端开发工具
    蓝桥历年套题 约数倍数选卡片 博弈
    单调栈求全1(或全0)子矩阵的个数 洛谷P5300与或和 P3400仓鼠窝
    5-15
    2018CCPC桂林站G Greatest Common Divisor
    STL中的BITSET运用
    2018CCPC桂林站JStone Game
    牛客2019湘潭大学程序竞赛
    Combine String HDU
  • 原文地址:https://www.cnblogs.com/mikechang/p/1722797.html
Copyright © 2011-2022 走看看