{"id":372,"title":"\u63d2\u5165\u6392\u5e8f\u6cd5","good":0,"bad":0,"hit":1852,"created_at":"2018-07-18 11:32:11","content":"
\u63d2\u5165\u6392\u5e8f\uff08Insertion Sort\uff09\u7684\u7b97\u6cd5\u63cf\u8ff0\u662f\u4e00\u79cd\u7b80\u5355\u76f4\u89c2\u7684\u6392\u5e8f\u7b97\u6cd5\u3002<\/span><\/p> \u5b83\u7684\u5de5\u4f5c\u539f\u7406\u662f\u901a\u8fc7\u6784\u5efa\u6709\u5e8f\u5e8f\u5217\uff0c\u5bf9\u4e8e\u672a\u6392\u5e8f\u6570\u636e\uff0c\u5728\u5df2\u6392\u5e8f\u5e8f\u5217\u4e2d\u4ece\u540e\u5411\u524d\u626b\u63cf\uff0c\u627e\u5230\u76f8\u5e94\u4f4d\u7f6e\u5e76\u63d2\u5165<\/span>\u3002<\/span><\/p> \u63d2\u5165\u6392\u5e8f\u5728\u5b9e\u73b0\u4e0a\uff0c\u901a\u5e38\u91c7\u7528in-place\u6392\u5e8f\uff08\u5373\u53ea\u9700\u7528\u5230O(1)\u7684\u989d\u5916\u7a7a\u95f4\u7684\u6392\u5e8f\uff09\uff0c\u56e0\u800c\u5728\u4ece\u540e\u5411\u524d\u626b\u63cf\u8fc7\u7a0b\u4e2d\uff0c\u9700\u8981\u53cd\u590d\u628a\u5df2\u6392\u5e8f\u5143\u7d20\u9010\u6b65\u5411\u540e\u632a\u4f4d\uff0c\u4e3a\u6700\u65b0\u5143\u7d20\u63d0\u4f9b\u63d2\u5165\u7a7a\u95f4\u3002<\/span><\/p> <\/span>
<\/span><\/p><?php\n\nclass suanfa\n{\n\n private $data;\n\n public function __construct()\n {\n $this->data = [87, 22, 5, 1, 2, 8, 3];\n }\n\n \/**\n * \u63d2\u5165\u6392\u5e8f\u6cd5\n * @return array\n *\/\n public function insert_sort()\n {\n $num = count($this->data);\n for ($i = 0; $i < $num; $i++) {\n $tmp = $this->data[$i];\n for ($j = $i - 1; $j >= 0; $j--) {\n if ($tmp < $this->data[$j]) {\n $this->data[$j + 1] = $this->data[$j];\n $this->data[$j] = $tmp;\n } else {\n break;\n }\n }\n }\n return $this->data;\n }\n}\n\n$obj = new suanfa();\nprint_r($obj->insert_sort());\n\/**\nArray\n(\n [0] => 1\n [1] => 2\n [2] => 3\n [3] => 5\n [4] => 8\n [5] => 22\n [6] => 87\n)\n * )\n *\/<\/pre>
<\/p>"}