冒泡法排序, 以及时间复杂空间复杂度分析

冒泡法排序的最好情况是数据元素集合已经全部排好序,这是循环n-1次每次没有交换动作而退出,因此,冒泡排序的最好情况的时间复杂是是O(n);冒泡排序算法的最坏情况是数据元素集合全部逆序存放,这时循环n-1次 比较次数你n(n-1)/2 和交换移动次数 3n(n-1)/2,因此冒泡排序算法最坏情况时间复杂度为O(n2).

冒泡排序算法的空间复杂度是O(1);

 1 function BubbleSort(&$a,$n){
 2     $flag=1;
 3     $temp=0;
 4     for ($i=1;$i<$n&&$flag==1;$i++){
 5         $flag=0;
 6         for ($j=0;$j<$n-$i;$j++){
 7             if($a[$j]<$a[$j+1]){
 8                 $flag=1;
 9                 $temp=$a[$j];
10                 $a[$j]=$a[$j+1];
11                 $a[$j+1]=$temp;
12             }
13         }
14     }
15 
16 }
17 $arr=[1,3,5,6,72,9];
18 $len=count($arr);
19 BubbleSort($arr,$len);
20 var_dump($arr);die;

 

posted @ 2019-02-17 22:51  friendwrite  阅读(5573)  评论(0编辑  收藏  举报