规律描述:
如果有n个数,就得需要n-1趟比较
第一趟比较,就把最大的数放在后面,接下来的趟数就得减掉之前比较好的次数,再比较求得"剩余值"的最大值
相邻两个数比较,把最大的放在后面
$arr = array(12,7,1,15,6); $len = count($arr);//求数组长度 for($i = 0;$i < $len-1;$i++)//比较的趟数($len-1?因为最后一次只剩下1个数,不用比较) { for($j = 0;$j <($len-1)-$i;$j++)//每一趟比较的次数 ($len-1-$i?$len-1为每一趟的比较次数;-$i每趟比较比上一趟少一次) { if($arr[$j] > $arr[$j+1]) { $temp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $arr[$j]; } } } /* 第一趟:比较4次(第一趟:$i=0 比较次数:$j[0~]) 第二趟:比较3次 第三趟:比较2次 第四趟:比较1次 */