{"id":23502,"date":"2023-01-27T15:26:19","date_gmt":"2023-01-27T08:26:19","guid":{"rendered":"https:\/\/kiencang.net\/?p=23502"},"modified":"2023-08-26T18:04:49","modified_gmt":"2023-08-26T11:04:49","slug":"thuat-toan-sap-xep-noi-bot","status":"publish","type":"post","link":"https:\/\/kiencang.net\/thuat-toan-sap-xep-noi-bot\/","title":{"rendered":"Thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp n\u1ed5i b\u1ecdt (bubble sort), gi\u1ea3i th\u00edch k\u00e8m v\u00ed d\u1ee5 trong PHP [serial v\u1ec1 c\u00e1c thu\u1eadt to\u00e1n c\u01a1 b\u1ea3n trong l\u1eadp tr\u00ecnh]"},"content":{"rendered":"\n

B\u00e0i to\u00e1n: ch\u00fang ta c\u00f3 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c ph\u1ea7n t\u1eed v\u1edbi c\u00e1c gi\u00e1 tr\u1ecb kh\u00e1c nhau, nh\u01b0ng kh\u00f4ng theo th\u1ee9 t\u1ef1 n\u00e0o c\u1ea3. <\/p>\n\n\n\n

Y\u00eau c\u1ea7u: s\u1eafp x\u1ebfp l\u1ea1i th\u1ee9 t\u1ef1 c\u1ee7a n\u00f3 t\u1eeb nh\u1ecf \u0111\u1ebfn l\u1edbn.<\/p>\n\n\n\n

L\u1eddi ng\u1ecf: h\u1ea7u h\u1ebft c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh \u0111\u1ec1u c\u00f3 s\u1eb5n c\u00e1c h\u00e0m \u0111\u1ec3 gi\u1ea3i quy\u1ebft nh\u1eefng b\u00e0i to\u00e1n c\u01a1 b\u1ea3n ki\u1ec3u nh\u01b0 th\u1ebf n\u00e0y, v\u1ea5n \u0111\u1ec1 \u1edf \u0111\u00e2y l\u00e0 ch\u00fang ta c\u1ea7n luy\u1ec7n t\u01b0 duy, s\u1eed d\u1ee5ng c\u00e1c h\u00e0m c\u01a1 b\u1ea3n h\u01a1n \u0111\u1ec3 \u0111\u1ea1t y\u00eau c\u1ea7u \u0111\u1ec1 ra. Ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh n\u00e0o \u1edf \u0111\u00e2y kh\u00f4ng qu\u00e1 quan tr\u1ecdng, b\u1ea1n n\u1eafm r\u00f5 thu\u1eadt to\u00e1n th\u00ec ng\u00f4n ng\u1eef n\u00e0o b\u1ea1n c\u0169ng s\u1ebd vi\u1ebft \u0111\u01b0\u1ee3c.<\/p>\n\n\n\n

Gi\u1edbi thi\u1ec7u: thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp n\u1ed5i b\u1ecdt nh\u01b0 ng\u1ee5 \u00fd h\u00ecnh t\u01b0\u1ee3ng c\u1ee7a n\u00f3, s\u1ebd duy\u1ec7t qua danh s\u00e1ch t\u1ea5t c\u1ea3 c\u00e1c ph\u1ea7n t\u1eed c\u1ee7a nh\u00f3m v\u00e0 so s\u00e1nh m\u1ed7i c\u1eb7p ph\u1ea7n t\u1eed li\u1ec1n k\u1ec1, n\u1ebfu th\u1ee9 t\u1ef1 c\u1ee7a n\u00f3 kh\u00f4ng nh\u01b0 y\u00eau c\u1ea7u th\u00ec \u0111\u1ed5i ch\u1ed7 (ho\u00e1n v\u1ecb). Qu\u00e1 tr\u00ecnh n\u00e0y \u0111\u01b0\u1ee3c l\u1eb7p l\u1ea1i cho \u0111\u1ebfn khi t\u1ea5t c\u1ea3 c\u00e1c ph\u1ea7n t\u1eed \u1edf \u0111\u00fang v\u1ecb tr\u00ed, v\u00e0 b\u00e0i to\u00e1n \u0111\u01b0\u1ee3c gi\u1ea3i quy\u1ebft.<\/p>\n\n\n\n

V\u00ed d\u1ee5, ch\u00fang ta c\u00f3 t\u1eadp h\u1ee3p ph\u1ea7n t\u1eed sau: 1, 20, 9 ,7, 3, 4, 6, 8, 2, 5, 30, 27<\/p>\n\n\n\n

H\u00e0m minh h\u1ecda trong PHP (b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng \u1ee9ng d\u1ee5ng online ki\u1ec3u nh\u01b0 https:\/\/onlinephp.io\/<\/a> \u0111\u1ec3 test h\u00e0m n\u1ebfu ch\u01b0a mu\u1ed1n c\u00e0i c\u00e1c ph\u1ea7n m\u1ec1m ch\u1ea1y PHP tr\u00ean m\u00e1y t\u00ednh):<\/p>\n\n\n\n

<?php\n$arr = array(1, 20, 9 , 7, 3, 4, 6, 8, 2, 5, 30, 27);\n\nfunction kc_bubble_sort($arr) {\n    \/\/ \u0111\u1ebfm s\u1ed1 l\u01b0\u1ee3ng ph\u1ea7n t\u1eed\n    $size = count($arr);\n\n    for ($i=0; $i<$size; $i++) {\n        for ($j=0; $j<$size-1-$i; $j++) {\n            if ($arr[$j] > $arr[$j+1]) {\n                \/\/ ho\u00e1n v\u1ecb ph\u1ea7n t\u1eed\n                $temp = $arr[$j]; \/\/ ph\u1ea7n t\u1eed trung gian\n                $arr[$j] = $arr[$j+1]; \/\/ \u0111\u1ea3o l\u1ea7n 1\n                $arr[$j+1] = $temp; \/\/ \u0111\u1ea3o l\u1ea7n 2, ho\u00e1n v\u1ecb th\u00e0nh c\u00f4ng\n            }\n        }\n    }\n\n    return $arr;\n}\n\n$arr = kc_bubble_sort($arr);\n\n\/\/ hi\u1ec3n th\u1ecb k\u1ebft qu\u1ea3 ki\u1ec3m tra\nprint_r($arr);<\/code><\/pre>\n\n\n\n

Gi\u1ea3i th\u00edch:<\/p>\n\n\n\n