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)。
    冒泡排序算法只需要一个辅助空间用于交换记录,所以,冒泡排序算法是一种稳定的排序方法。

  • 相关阅读:
    0-完全开源的 Vue.js 入门级教程:HelloVue,发车啦!
    [Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的工具
    用 Java 做个“你画手机猜”的小游戏
    PowerJob 从 0 到 1.9k star 的经历
    最后一篇:结束不想说再见,那就扬帆再次起航!
    shell 常用快捷键
    微服务网关评测对比
    Docker加入自定义iptables规则链
    CentOS.7防火墙firewalld属性
    bash和shell的差别
  • 原文地址:https://www.cnblogs.com/mikechang/p/1722797.html
Copyright © 2011-2022 走看看