<span>function</span> buttle_sort(<span>$array</span><span>) { </span><span>$len</span>=<span>count</span>(<span>$array</span><span>); </span><span>if</span>(<span>$len</span><2<span>){ </span><span>return</span> <span>$array</span><span>; } </span><span>for</span>(<span>$i</span>=0;<span>$i</span><<span>$len</span>;<span>$i</span>++<span>){ </span><span>$flag</span> = <span>false</span>;<span>//</span><span>本趟排序开始前,交换标志应为假</span> <span>for</span>(<span>$j</span>=<span>$len</span>-1;<span>$j</span>><span>$i</span>;<span>$j</span>--<span>){ </span><span>if</span>(<span>$array</span>[<span>$j</span>]<<span>$array</span>[<span>$j</span>-1<span>]){ </span><span>$tmp</span> = <span>$array</span>[<span>$j</span><span>]; </span><span>$array</span>[<span>$j</span>] = <span>$array</span>[<span>$j</span>-1<span>]; </span><span>$array</span>[<span>$j</span>-1] = <span>$tmp</span><span>; </span><span>$flag</span> = <span>true</span>;<span>//</span><span>发生了交换,故将交换标志置为真</span> <span> } } } </span><span>if</span>(!<span>$flag</span>)<span>//</span><span>本趟排序未发生交换,提前终止算法</span> <span>return</span> <span>$array</span><span>; }</span>
待补充