冒泡排序(简单版)

作者: 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) 。

    如图所示

    相关文章

      网友评论

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

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