用所需比较次数来衡量冒泡排序的最坏情形复杂度是多少?
解: 在每一遍冒泡排序都连续比较相邻元素,必要时交换相邻元素。当第[tex=0.357x1.0]+eJLelx8thmbkEj/Y0iCOw==[/tex]遍开始时,[tex=1.643x1.143]aQXeeviD3SOqbJOKuj3XcA==[/tex]个最大的元素保证在正确位置上。在这一遍,使用了[tex=1.786x1.143]iYM59ju8nQ3JTm8nHHSJQQ==[/tex]次比较。因此,求和公式可得,冒泡排序对[tex=0.643x0.786]SBMIs+VUk7//BOpfqlQl0w==[/tex]个元素的列表进行排序时所需使用的总的比较次数是[tex=15.5x2.429]FyzKE3/yg09zpF+3sx+UWNf2mQ5h/q8KScTbRmt2IC20S/PZcAtkmKKyWJCICFzr[/tex]注意冒泡排序总是使用这么多次的比较,因为即使在某个中间步骤列表已经完全排好了,冒泡排序仍会继续进行。因此,用比较次数来衡量时,冒泡排序使用[tex=4.286x1.357]iXXn9SqdYts5bP7igqmEYg==[/tex]次比较,所以它的最坏情形复杂度是[tex=2.857x1.571]VuDPIfzitB5foCEJrJP6G8hR4I5bVeUiqVU9UElPwpA=[/tex]。
本题目来自[网课答案]本页地址:https://www.wkda.cn/ask/tzyojaeapaxtzoo.html
举一反三
内容
- 0
对于7个数进行冒泡排序,最坏情况下需要进行的比较次数为。
- 1
若用冒泡排序对关键字序列{18,16,14,12,10,8},进行从小到大的排序,所需进行的关键字比较总次数是( )。
- 2
对长度为n的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
- 3
在最坏情况下,长度为N的线性表冒泡排序所需要的比较次数为( )。
- 4
冒泡排序的最好和最坏情况时间复杂度分别为______ 和______ 。