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

  • 相关阅读:
    NO 3 ,人生苦短,我学python之python 元祖tuple魔法
    NO 2,人生苦短,我学python之python 列表list的魔法
    NO 1,人生苦短,我学python之python 字符串的魔法
    几种常见登录验证的方式总结
    Spring Boot 解决跨域问题的 3 种方案
    浅析VO、DTO、DO、PO的概念、区别和用处
    对于分库分表的入门理解
    在项目启动后执行某段功能代码
    jna编程学习
    RabbitMQ详解
  • 原文地址:https://www.cnblogs.com/mikechang/p/1722797.html
Copyright © 2011-2022 走看看