{"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 Gi\u1ea3i th\u00edch:<\/p>\n\n\n\n C\u00e2u h\u1ecfi \u1edf \u0111\u00e2y Nguy\u00ean nh\u00e2n l\u00e0 v\u00ec, sau khi b\u1ea1n g\u00e1n gi\u00e1 tr\u1ecb Ph\u1ea7n tr\u00ean \u0111\u00e3 d\u1ec5 hi\u1ec3u, nh\u01b0ng c\u00f2n \u0111o\u1ea1n n\u00e0y th\u00ec sao:<\/p>\n\n\n\n Sao n\u00f3 kh\u00f4ng ph\u1ea3i l\u00e0 nh\u01b0 th\u1ebf n\u00e0y:<\/p>\n\n\n\n Th\u1ef1c t\u1ebf khi b\u1ea1n ch\u1ea1y \u0111o\u1ea1n m\u00e3 b\u00ean d\u01b0\u1edbi \u0111\u00e2y:<\/p>\n\n\n\n N\u00f3 s\u1ebd b\u00e1o l\u1ed7i:<\/p>\n\n\n\n S\u1edf d\u0129 c\u00f3 \u0111i\u1ec1u \u0111\u00f3 l\u00e0 v\u00ec v\u1edbi \u0111o\u1ea1n m\u00e3 tr\u00ean, \u0111\u1ebfn ph\u1ea7n t\u1eed cu\u1ed1i c\u00f9ng s\u1ebd kh\u00f4ng t\u1ed3n t\u1ea1i OK, nh\u01b0 v\u1eady l\u00e0 s\u1ebd h\u1ee3p l\u00fd n\u1ebfu n\u00f3 nh\u01b0 sau ph\u1ea3i kh\u00f4ng:<\/p>\n\n\n\n V\u1edbi Gi\u1edd ch\u00fang ta s\u1ebd qua ph\u1ea7n hi\u1ec3u \u0111o\u1ea1n m\u00e3 tr\u00ean \u0111\u00e3, xem n\u00f3 b\u1eaft \u0111\u1ea7u nh\u01b0 th\u1ebf n\u00e0o?<\/p>\n\n\n\n \u1ede v\u00f2ng l\u1eb7p \u0111\u1ea7u ti\u00ean c\u1ee7a $j, t\u1ee9c l\u00e0 $j = 0, n\u00f3 s\u1ebd so s\u00e1nh 1, 20. Kh\u00f4ng c\u00f3 thay \u0111\u1ed5i g\u00ec, v\u00ec 1 nh\u1ecf h\u01a1n 20. Ti\u1ebfp:<\/p>\n\n\n\n \u0110\u1ec3 d\u1ec5 hi\u1ec3u b\u1ea1n c\u00f3 th\u1ec3 ch\u1ea1y \u0111o\u1ea1n m\u00e3 sau:<\/p>\n\n\n\n T\u1ee9c l\u00e0 ch\u1ec9 ch\u1ea1y m\u1ed9t v\u00f2ng cho $j, k\u1ebft qu\u1ea3 s\u1ebd th\u00e0nh nh\u01b0 ph\u1ea7n m\u00f4 t\u1ea3 \u1edf tr\u00ean:<\/p>\n\n\n\n C\u00f2n n\u1ebfu b\u1ea1n ch\u1ea1y 2 v\u00f2ng $j, t\u1ee9c l\u00e0 \u0111\u1ec3 $i<2 th\u00ec k\u1ebft qu\u1ea3 s\u1ebd nh\u01b0 th\u1ebf n\u00e0y:<\/p>\n\n\n\n OK, nh\u01b0 v\u1eady l\u00e0 ch\u00fang ta \u0111\u00e3 hi\u1ec3u r\u1eb1ng, v\u1edbi m\u1ed7i v\u00f2ng l\u1eb7p ho\u00e0n ch\u1ec9nh c\u1ee7a $j (ch\u1ea1y h\u1ebft v\u00f2ng) th\u00ec gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t s\u1ebd ch\u00ecm xu\u1ed1ng d\u01b0\u1edbi v\u00e0 d\u1ea7n d\u1ea7n khi ch\u1ea1y \u0111\u1ee7 ch\u00fang ta s\u1ebd c\u00f3 m\u1ea3ng s\u1eafp x\u1ebfp theo \u0111\u00fang th\u1ee9 t\u1ef1 mong mu\u1ed1n.<\/p>\n\n\n\n Gi\u1edd c\u00e2u h\u1ecfi cu\u1ed1i c\u00f9ng s\u1ebd l\u00e0, v\u00ec sao \u1edf m\u00e3 chu\u1ea9n l\u00e0 l\u1ea1i tr\u1eeb c\u1ea3 th\u00eam $i:<\/p>\n\n\n\n Nguy\u00ean nh\u00e2n l\u00e0 v\u00ec sau m\u1ed7i v\u00f2ng l\u1eb7p ho\u00e0n ch\u1ec9nh c\u1ee7a $j, gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t \u0111\u00e3 n\u1eb1m \u1edf cu\u1ed1i, v\u00e0 nh\u01b0 v\u1eady kh\u00f4ng c\u1ea7n ph\u1ea3i so s\u00e1nh v\u1edbi ph\u1ea7n t\u1eed \u0111\u00f3 n\u1eefa. N\u00f3i c\u00e1ch kh\u00e1c, ch\u1eb3ng h\u1ea1n sau 2 v\u00f2ng l\u1eb7p ho\u00e0n ch\u1ec9nh c\u1ee7a $j, ch\u1eafc ch\u1eafn 2 gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t \u0111\u00e3 n\u1eb1m \u1edf cu\u1ed1i r\u1ed3i, do v\u1eady kh\u00f4ng c\u1ea7n ti\u1ebfp t\u1ee5c so s\u00e1nh v\u1edbi 2 ph\u1ea7n t\u1eed \u0111\u00f3 l\u00e0m g\u00ec, do v\u1eady m\u00e0 tr\u1eeb \u0111i.<\/p>\n\n\n\n M\u1ee5c \u0111\u00edch c\u1ee7a \u0111o\u1ea1n m\u00e3 n\u00e0y v\u00ec th\u1ebf l\u00e0 \u0111\u1ec3 ti\u1ebft ki\u1ec7m t\u00e0i nguy\u00ean. L\u1eadp tr\u00ecnh th\u01b0\u1eddng c\u00f3 nh\u1eefng thao t\u00e1c l\u1eb7p \u0111i l\u1eb7p l\u1ea1i r\u1ea5t nhi\u1ec1u l\u1ea7n (kh\u00f4ng hi\u1ebfm g\u1eb7p l\u00e0 c\u1ea3 100 ng\u00e0n ph\u00e9p t\u00ednh m\u1ed7i l\u1ea7n ch\u1ea1y \u1ee9ng d\u1ee5ng), v\u00e0 \u0111\u00f4i khi, ch\u1ec9 m\u1ed9t \u0111i\u1ec1u ch\u1ec9nh nh\u1ecf trong \u0111o\u1ea1n m\u00e3 c\u00f3 th\u1ec3 gi\u00fap gi\u1ea3m th\u1eddi gian th\u1ef1c thi ho\u1eb7c\/v\u00e0 t\u00e0i nguy\u00ean y\u00eau c\u1ea7u \u0111i v\u00e0i l\u1ea7n. Qua \u0111\u00f3 c\u1ea3i thi\u1ec7n tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng, ti\u1ebft ki\u1ec7m chi ph\u00ed m\u00e1y ch\u1ee7.<\/p>\n\n\n\n \u0110\u00e1nh gi\u00e1 v\u1ec1 thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp n\u1ed5i b\u1ecdt: thu\u1eadt to\u00e1n n\u00e0y \u0111\u01b0\u1ee3c cho l\u00e0 d\u1ec5 hi\u1ec3u nh\u01b0ng so v\u1edbi c\u00e1c thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp kh\u00e1c n\u00f3 c\u00f3 t\u1ed1c \u0111\u1ed9 ch\u1eadm h\u01a1n (v\u00ed d\u1ee5 khi so v\u1edbi quick sort<\/a> ho\u1eb7c merge sort<\/a>), n\u00f3 c\u1ea7n t\u1ed1i thi\u1ec3u n*(n-1)\/2 b\u01b0\u1edbc so s\u00e1nh c\u1eb7p \u0111\u00f4i \u0111\u1ec3 s\u1eafp x\u1ebfp n ph\u1ea7n t\u1eed.<\/p>\n\n\n\n OK. V\u1eady l\u00e0 ch\u00fang ta \u0111\u00e3 hi\u1ec3u v\u1ec1 thu\u1eadt to\u00e1n s\u1eafp x\u1ebfp n\u1ed5i b\u1ecdt, b\u1eb1ng c\u00e1ch chia nh\u1ecf v\u00e0 gi\u1ea3i th\u00edch t\u1eebng ph\u1ea7n m\u1ed9t c\u1ee7a \u0111o\u1ea1n m\u00e3. \u0110\u00e2y c\u0169ng l\u00e0 bi\u1ec7n ph\u00e1p th\u01b0\u1eddng d\u00f9ng trong l\u1eadp tr\u00ecnh, m\u1ed9t b\u00e0i to\u00e1n l\u1edbn \u0111\u01b0\u1ee3c chia l\u00e0m nhi\u1ec1u b\u00e0i to\u00e1n nh\u1ecf d\u1ec5 h\u01a1n, v\u00e0 gi\u1ea3i quy\u1ebft d\u1ea7n d\u1ea7n. H\u1eb9n g\u1eb7p l\u1ea1i c\u00e1c b\u1ea1n \u1edf b\u00e0i vi\u1ebft sau.<\/p>\n","protected":false},"excerpt":{"rendered":" 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. 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. 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 …<\/p>\n","protected":false},"author":1,"featured_media":24640,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[333],"tags":[334],"yoast_head":"\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
\n
if ($arr[$j] > $arr[$j+1])<\/code> ngh\u0129a l\u00e0 n\u1ebfu ph\u1ea7n t\u1eed \u0111\u1ee9ng tr\u01b0\u1edbc l\u1edbn h\u01a1n ph\u1ea7n t\u1eed \u0111\u1ee9ng sau ch\u00fang ta s\u1ebd ph\u1ea3i \u0111\u1ea3o v\u1ecb tr\u00ed c\u1ee7a n\u00f3 (theo y\u00eau c\u1ea7u l\u00e0 s\u1eafp x\u1ebfp t\u1eeb nh\u1ecf \u0111\u1ebfn l\u1edbn), b\u1eb1ng \u0111o\u1ea1n m\u00e3 b\u00ean d\u01b0\u1edbi:<\/li>\n<\/ul>\n\n\n\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<\/code><\/pre>\n\n\n\n
$temp<\/code> \u0111\u1ec3 l\u00e0m g\u00ec, sao kh\u00f4ng ch\u1ec9 nh\u01b0 th\u1ebf n\u00e0y th\u00f4i l\u00e0 \u0111\u1ee7:<\/p>\n\n\n\n
$arr[$j] = $arr[$j+1]; \n$arr[$j+1] = $arr[$j]; <\/code><\/pre>\n\n\n\n
$arr[$j] = $arr[$j+1];<\/code> th\u00ec
$arr[$j]<\/code> \u0111\u00e3 c\u00f3 gi\u00e1 tr\u1ecb m\u1edbi r\u1ed3i (ch\u00ednh l\u00e0 gi\u00e1 tr\u1ecb c\u1ee7a
$arr[$j+1]<\/code>), n\u00ean n\u1ebfu ti\u1ebfp t\u1ee5c g\u00e1n
$arr[$j+1] = $arr[$j];<\/code> ch\u00fang ta s\u1ebd c\u00f3 2 gi\u00e1 tr\u1ecb tr\u00f9ng l\u1eb7p \u0111\u1ec1u l\u00e0 c\u1ee7a
$arr[$j+1]<\/code>, thay v\u00ec c\u00f3 gi\u00e1 tr\u1ecb ho\u00e1n v\u1ecb.
$temp<\/code> ch\u00ednh l\u00e0 n\u01a1i l\u01b0u gi\u00e1 tr\u1ecb t\u1ea1m th\u1eddi c\u1ee7a
$arr[$j]<\/code>.<\/p>\n\n\n\n
for ($j=0; $j<$size-1-$i; $j++) {\n \/\/ \u0111o\u1ea1n m\u00e3 ho\u00e1n v\u1ecb\n}<\/code><\/pre>\n\n\n\n
for ($j=0; $j<$size; $j++) {\n \/\/ \u0111o\u1ea1n m\u00e3 ho\u00e1n v\u1ecb\n}<\/code><\/pre>\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; $j++) {<\/strong>\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
Notice: Undefined offset: 12 in \/home\/user\/scripts\/code.php on line 10\n\nNotice: Undefined offset: 12 in \/home\/user\/scripts\/code.php on line 13<\/code><\/pre>\n\n\n\n
$arr[$j+1]<\/code> n\u1eefa (trong v\u00ed d\u1ee5 tr\u00ean n\u00f3 c\u00f3 12 ph\u1ea7n t\u1eed, \u0111o\u1ea1n m\u00e3
for ($j=0; $j<$size; $j++) {}<\/code> khi \u0111\u1ebfn ph\u1ea7n t\u1eed cu\u1ed1i s\u1ebd th\u1ef1c hi\u1ec7n ki\u1ec3m tra
$arr[11] > $arr[12]<\/code>, m\u1ea3ng \u0111\u01b0\u1ee3c \u0111\u00e1nh v\u1ecb tr\u00ed t\u1eeb 0, do v\u1eady m\u1ea3ng n\u00e0y ch\u1ec9 c\u00f3 \u0111\u1ebfn ph\u1ea7n t\u1eed
$arr[11]<\/code> l\u00e0 t\u1ed1i \u0111a, kh\u00f4ng c\u00f3
$arr[12]<\/code>).<\/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; $j++) {<\/strong>\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
$j<$size-1<\/code><\/strong> l\u00e0 \u0111o\u1ea1n m\u00e3 tr\u00ean s\u1ebd ch\u1ea1y, tr\u1ea3 v\u1ec1 \u0111\u00fang k\u1ebft qu\u1ea3 m\u00e0 kh\u00f4ng b\u00e1o l\u1ed7i g\u00ec, c\u00f2n ch\u1ed1c n\u1eefa t\u00f4i s\u1ebd gi\u1ea3i th\u00edch t\u1ea1i sao l\u00e0 $j<$size-1-$i<\/strong> (gi\u1ea3i th\u00edch lu\u00f4n b\u00e2y gi\u1edd s\u1ebd r\u1ed1i).<\/p>\n\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<1; $i++) {\n for ($j=0; $j<$size-1; $j++) {<\/strong>\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
1, 9, 7, 3, 4, 6, 8, 2, 5, 20, 27, 30<\/code><\/pre>\n\n\n\n
1, 7, 3, 4, 6, 8, 2, 5, 9, 20, 27, 30<\/code><\/pre>\n\n\n\n
for ($j=0; $j<$size-1-$i; $j++) {<\/strong><\/code><\/pre>\n\n\n\n