冒泡排序(简单版)

作者: IT界汤哥看世界 | 来源:发表于2020-05-01 15:35 被阅读0次

假设有x个比较项参与比较,冒泡排序的方法为:从左到右或从右到左,从大到小或从小到大,从第一个比较项开始,相邻的两个比较项进行比较

注意:(1)显然,每轮会将最值放置比较结束端,所以,每n轮结束,则n+1轮的最后n个比较项不参与比较。(2)x个比较项要排序完成,总共进行x-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。

用时间复杂度来说:(1)如果我们的数据正序,只需要走一趟即可完成排序。所需的比较次数C和记录移动次数M均达到最小值,即:Cmin=n-1;Mmin=0;所以,冒泡排序最好的时间复杂度为O(n)。(2)如果很不幸我们的数据是反序的,则需要进行n-1趟排序。每趟排序要进行n-i次比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:冒泡排序的最坏时间复杂度为:O(n2) 。综上所述:冒泡排序总的平均时间复杂度为:O(n2) 。

如图所示

相关文章

  • 常用的两种排序-冒泡、选择

    Swift版 冒泡排序 选择排序 OC版 冒泡排序 选择排序

  • 冒泡排序(简单版)

    假设有x个比较项参与比较,冒泡排序的方法为:从左到右或从右到左,从大到小或从小到大,从第一个比较项开始,相邻的两个...

  • JS基础案例21-数组之冒泡排序

    arr=[1,4,0,5,6,2,3]; // 进行排序。 冒泡排序第一种方法,简单版 冒泡排序第二种方法,简...

  • 算法学习之简单排序

    简单排序 简单排序有三种, 冒泡排序,选择排序,插入排序 冒泡排序 冒泡排序是一种易于实现的排序算法, 以升序为例...

  • 面试算法:冒泡排序

    冒泡排序性能 性能:稳定 最好:O(n) 最坏:O(n*n) 冒泡排序常规版

  • 排序算法

    常见的排序算法有: 冒泡排序 快速排序 插入排序 归并排序 堆排序 1. 冒泡排序 冒泡排序是一种极其简单的排序算...

  • 01_冒泡排序

    TypeScript实现十大排序算法(一) - 冒泡排序 一. 冒泡排序的定义 冒泡排序是一种简单的排序方法。 基...

  • 常见排序算法(2)--简单选择排序

    简单选择排序也比较简单,不过效率比前面的未优化版的冒泡排序会略微高一些,下面我们看看简单选择排序的代码吧。 其实简...

  • Java 排序

    冒泡排序 1、冒泡排序及算法实现 什么是冒泡排序呢?冒泡排序是一种简单的排序方法,它的基本思想是:通过相邻两个元素...

  • 深入浅出 Swift 算法系列一:冒泡排序

    什么是冒泡排序(Bubble Sort) 首先,我们先瞄一眼冒泡排序算法的定义: 冒泡排序 是一种简单的排序算法。...

网友评论

    本文标题:冒泡排序(简单版)

    本文链接:https://www.haomeiwen.com/subject/ngkqghtx.html