{"id":1539,"date":"2025-09-28T20:49:33","date_gmt":"2025-09-28T13:49:33","guid":{"rendered":"https:\/\/kienthucmo.com\/?p=1539"},"modified":"2025-11-05T23:41:43","modified_gmt":"2025-11-05T16:41:43","slug":"tim-kiem-phan-tu-trong-tuple-voi-python","status":"publish","type":"post","link":"https:\/\/kienthucmo.com\/vi\/tim-kiem-phan-tu-trong-tuple-voi-python\/","title":{"rendered":"T\u00ecm ki\u1ebfm ph\u1ea7n t\u1eed trong Tuple v\u1edbi Python"},"content":{"rendered":"\n<p>Trong l\u1eadp tr\u00ecnh Python, <strong>list<\/strong> l\u00e0 m\u1ed9t trong nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u ph\u1ed5 bi\u1ebfn nh\u1ea5t. Ch\u00fang gi\u1ed1ng nh\u01b0 m\u1ed9t container l\u01b0u tr\u1eef c\u00e1c ph\u1ea7n t\u1eed c\u00f3 th\u1ec3 l\u00e0 s\u1ed1, chu\u1ed7i, ho\u1eb7c th\u1eadm ch\u00ed c\u00e1c list kh\u00e1c. Trong qu\u00e1 tr\u00ecnh x\u1eed l\u00fd d\u1eef li\u1ec7u, vi\u1ec7c <strong>t\u00ecm ki\u1ebfm ph\u1ea7n t\u1eed trong list<\/strong> l\u00e0 m\u1ed9t thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng c\u1ef1c k\u1ef3 quan tr\u1ecdng.<\/p>\n\n\n\n<p>Vi\u1ec7c ch\u1ecdn \u0111\u00fang thu\u1eadt to\u00e1n t\u00ecm ki\u1ebfm s\u1ebd \u1ea3nh h\u01b0\u1edfng l\u1edbn \u0111\u1ebfn hi\u1ec7u su\u1ea5t ch\u01b0\u01a1ng tr\u00ecnh, \u0111\u1eb7c bi\u1ec7t v\u1edbi list c\u00f3 k\u00edch th\u01b0\u1edbc l\u1edbn. Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh s\u1ebd chia s\u1ebb to\u00e0n b\u1ed9 ki\u1ebfn th\u1ee9c v\u1ec1 <strong>t\u00ecm ki\u1ebfm ph\u1ea7n t\u1eed trong list Python<\/strong>, t\u1eeb c\u01a1 b\u1ea3n \u0111\u1ebfn n\u00e2ng cao, k\u00e8m v\u00ed d\u1ee5 minh h\u1ecda chi ti\u1ebft, gi\u00fap b\u1ea1n v\u1eeba hi\u1ec3u thu\u1eadt to\u00e1n v\u1eeba d\u1ec5 \u00e1p d\u1ee5ng v\u00e0o th\u1ef1c t\u1ebf.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. T\u1ed5ng quan v\u1ec1 list trong Python<\/h2>\n\n\n\n<p>List trong Python l\u00e0 m\u1ed9t lo\u1ea1i d\u1eef li\u1ec7u \u0111\u1ed9ng, cho ph\u00e9p l\u01b0u tr\u1eef t\u1eadp h\u1ee3p ph\u1ea7n t\u1eed v\u1edbi c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u kh\u00e1c nhau. M\u1ed9t \u0111i\u1ec3m m\u1ea1nh c\u1ee7a list l\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng v\u00e0 thao t\u00e1c \u0111a d\u1ea1ng.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Create a list containing integers\nnumbers = &#91;10, 20, 30, 40, 50&#93;\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Create a list containing integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">40<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">50<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Nh\u1edd v\u00e0o t\u00ednh ch\u1ea5t n\u00e0y, list r\u1ea5t linh ho\u1ea1t, nh\u01b0ng \u0111\u1ed3ng th\u1eddi y\u00eau c\u1ea7u ch\u00fang ta c\u1ea7n c\u00f3 c\u00e1ch t\u00ecm ki\u1ebfm ph\u00f9 h\u1ee3p \u0111\u1ec3 t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Linear Search trong List<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Kh\u00e1i ni\u1ec7m<\/h3>\n\n\n\n<p>Linear Search (t\u00ecm ki\u1ebfm tuy\u1ebfn t\u00ednh) l\u00e0 ph\u01b0\u01a1ng ph\u00e1p t\u00ecm ki\u1ebfm c\u01a1 b\u1ea3n nh\u1ea5t. \u00dd t\u01b0\u1edfng l\u00e0 ki\u1ec3m tra t\u1eebng ph\u1ea7n t\u1eed trong list theo th\u1ee9 t\u1ef1 t\u1eeb \u0111\u1ea7u \u0111\u1ebfn cu\u1ed1i, so s\u00e1nh v\u1edbi gi\u00e1 tr\u1ecb c\u1ea7n t\u00ecm. N\u1ebfu t\u00ecm th\u1ea5y th\u00ec tr\u1ea3 v\u1ec1 v\u1ecb tr\u00ed index, n\u1ebfu kh\u00f4ng th\u00ec k\u1ebft th\u00fac sau khi ki\u1ec3m tra h\u1ebft list.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 C\u00e0i \u0111\u1eb7t minh h\u1ecda<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Create a list of integers\nnumbers = &#91;10, 20, 30, 40, 50&#93;\n\n# Value to search\ntarget = 30\n\n# Linear search implementation\nfor index, value in enumerate(numbers):\n    if value == target:\n        print(f\"Element {target} found at index {index}\")\n        break\nelse:\n    print(f\"Element {target} not found\")\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Create a list of integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">40<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">50<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Value to search<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">target <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Linear search implementation<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> index<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">enumerate<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">numbers<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> target<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;Element <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">target<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> found at index <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">index<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">break<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;Element <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">target<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> not found&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2.3 Ph\u00e2n t\u00edch<\/h3>\n\n\n\n<p>Linear Search \u0111\u01a1n gi\u1ea3n, d\u1ec5 hi\u1ec3u v\u00e0 kh\u00f4ng c\u1ea7n s\u1eafp x\u1ebfp list tr\u01b0\u1edbc. Tuy nhi\u00ean, nh\u01b0\u1ee3c \u0111i\u1ec3m l\u00e0 t\u1ed1c \u0111\u1ed9 t\u00ecm ki\u1ebfm t\u1ec9 l\u1ec7 thu\u1eadn v\u1edbi k\u00edch th\u01b0\u1edbc list.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tr\u01b0\u1eddng h\u1ee3p t\u1ed1t nh\u1ea5t<\/strong>: ph\u1ea7n t\u1eed t\u00ecm th\u1ea5y \u1edf \u0111\u1ea7u list \u2192 O(1)<\/li>\n\n\n\n<li><strong>Tr\u01b0\u1eddng h\u1ee3p x\u1ea5u nh\u1ea5t<\/strong>: ph\u1ea7n t\u1eed n\u1eb1m \u1edf cu\u1ed1i ho\u1eb7c kh\u00f4ng t\u1ed3n t\u1ea1i \u2192 O(n)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.4 Khi n\u00e0o d\u00f9ng<\/h3>\n\n\n\n<p>Linear Search ph\u00f9 h\u1ee3p v\u1edbi list nh\u1ecf ho\u1eb7c khi d\u1eef li\u1ec7u ch\u01b0a \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp. N\u1ebfu list qu\u00e1 l\u1edbn v\u00e0 t\u00ecm ki\u1ebfm th\u01b0\u1eddng xuy\u00ean, n\u00ean d\u00f9ng thu\u1eadt to\u00e1n kh\u00e1c \u0111\u1ec3 ti\u1ebft ki\u1ec7m th\u1eddi gian.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Binary Search trong List<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Kh\u00e1i ni\u1ec7m<\/h3>\n\n\n\n<p>Binary Search l\u00e0 ph\u01b0\u01a1ng ph\u00e1p t\u00ecm ki\u1ebfm nhanh h\u01a1n Linear Search, nh\u01b0ng y\u00eau c\u1ea7u list <strong>ph\u1ea3i \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp<\/strong> tr\u01b0\u1edbc. Thu\u1eadt to\u00e1n n\u00e0y chia list th\u00e0nh hai ph\u1ea7n, so s\u00e1nh ph\u1ea7n t\u1eed gi\u1eefa list v\u1edbi gi\u00e1 tr\u1ecb c\u1ea7n t\u00ecm, r\u1ed3i quy\u1ebft \u0111\u1ecbnh t\u00ecm ti\u1ebfp \u1edf n\u1eeda tr\u00ean ho\u1eb7c n\u1eeda d\u01b0\u1edbi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 C\u00e0i \u0111\u1eb7t minh h\u1ecda<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Create a sorted list\nnumbers = &#91;10, 20, 30, 40, 50, 60, 70&#93;\n\n# Value to search\ntarget = 50\n\n# Binary search implementation\nlow = 0\nhigh = len(numbers) - 1\nfound = False\n\nwhile low &lt;= high:\n    mid = (low + high) \/\/ 2\n    if numbers&#91;mid&#93; == target:\n        print(f\"Element {target} found at index {mid}\")\n        found = True\n        break\n    elif numbers&#91;mid&#93; &lt; target:\n        low = mid + 1\n    else:\n        high = mid - 1\n\nif not found:\n    print(f\"Element {target} not found\")\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Create a sorted list<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">40<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">50<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">60<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">70<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Value to search<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">target <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">50<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Binary search implementation<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">low <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">high <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">len<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">numbers<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">found <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">False<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> low <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> high<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    mid <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">low <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> high<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/\/<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> numbers<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">mid<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> target<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;Element <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">target<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> found at index <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">mid<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        found <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">True<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">break<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">elif<\/span><span style=\"color: #D8DEE9FF\"> numbers<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">mid<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> target<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        low <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> mid <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        high <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> mid <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">not<\/span><span style=\"color: #D8DEE9FF\"> found<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;Element <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">target<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> not found&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3.3 Ph\u00e2n t\u00edch<\/h3>\n\n\n\n<p>Binary Search r\u1ea5t hi\u1ec7u qu\u1ea3 v\u1edbi list \u0111\u00e3 s\u1eafp x\u1ebfp:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ed9 ph\u1ee9c t\u1ea1p: <strong>O(log n)<\/strong><\/li>\n\n\n\n<li>V\u1edbi list l\u1edbn, t\u00ecm ki\u1ebfm nhanh h\u01a1n nhi\u1ec1u so v\u1edbi Linear Search.<br>Tuy nhi\u00ean, c\u1ea7n \u0111\u1ea3m b\u1ea3o list lu\u00f4n \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp tr\u01b0\u1edbc khi t\u00ecm ki\u1ebfm, n\u1ebfu kh\u00f4ng s\u1ebd d\u1eabn \u0111\u1ebfn k\u1ebft qu\u1ea3 sai.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3.4 Khi n\u00e0o d\u00f9ng<\/h3>\n\n\n\n<p>Binary Search ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c t\u00ecnh hu\u1ed1ng c\u1ea7n t\u00ecm ki\u1ebfm nhi\u1ec1u l\u1ea7n trong m\u1ed9t list l\u1edbn \u0111\u00e3 s\u1eafp x\u1ebfp, v\u00ed d\u1ee5: t\u00ecm s\u1ea3n ph\u1ea9m trong danh s\u00e1ch kho h\u00e0ng \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp theo ID.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. S\u1eed d\u1ee5ng th\u01b0 vi\u1ec7n <code>bisect<\/code><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 Gi\u1edbi thi\u1ec7u<\/h3>\n\n\n\n<p>Python cung c\u1ea5p module <strong><code>bisect<\/code><\/strong> \u0111\u1ec3 h\u1ed7 tr\u1ee3 t\u00ecm ki\u1ebfm nhanh trong list \u0111\u00e3 s\u1eafp x\u1ebfp. N\u00f3 th\u1ef1c hi\u1ec7n Binary Search d\u01b0\u1edbi d\u1ea1ng h\u00e0m ti\u1ec7n \u00edch, gi\u00fap ti\u1ebft ki\u1ec7m th\u1eddi gian v\u00e0 c\u00f4ng s\u1ee9c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.2 V\u00ed d\u1ee5 minh h\u1ecda<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import bisect\n\n# Create a sorted list\nnumbers = &#91;10, 20, 30, 40, 50, 60&#93;\n\n# Value to search\ntarget = 40\n\n# Use bisect_left to find insertion index\nindex = bisect.bisect_left(numbers, target)\n\nif index &lt; len(numbers) and numbers&#91;index&#93; == target:\n    print(f\"Element {target} found at index {index}\")\nelse:\n    print(f\"Element {target} not found\")\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> bisect<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create a sorted list<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">40<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">50<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">60<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Value to search<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">target <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">40<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Use bisect_left to find insertion index<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">index <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> bisect<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">bisect_left<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">numbers<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> target<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> index <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">len<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">numbers<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">and<\/span><span style=\"color: #D8DEE9FF\"> numbers<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">index<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> target<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;Element <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">target<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> found at index <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">index<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;Element <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">target<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> not found&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">4.3 \u01afu \u0111i\u1ec3m<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kh\u00f4ng c\u1ea7n vi\u1ebft thu\u1eadt to\u00e1n th\u1ee7 c\u00f4ng.<\/li>\n\n\n\n<li>Hi\u1ec7u su\u1ea5t cao cho list \u0111\u00e3 s\u1eafp x\u1ebfp.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. T\u00ecm ki\u1ebfm theo \u0111i\u1ec1u ki\u1ec7n t\u00f9y ch\u1ec9nh<\/h2>\n\n\n\n<p>Kh\u00f4ng ph\u1ea3i l\u00fac n\u00e0o t\u00ecm ki\u1ebfm c\u0169ng \u0111\u01a1n gi\u1ea3n l\u00e0 t\u00ecm m\u1ed9t gi\u00e1 tr\u1ecb c\u1ee5 th\u1ec3. \u0110\u00f4i khi, b\u1ea1n c\u1ea7n t\u00ecm ph\u1ea7n t\u1eed th\u1ecfa m\u1ed9t \u0111i\u1ec1u ki\u1ec7n \u0111\u1eb7c bi\u1ec7t.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5.1 V\u00ed d\u1ee5: t\u00ecm ph\u1ea7n t\u1eed \u0111\u1ea7u ti\u00ean th\u1ecfa \u0111i\u1ec1u ki\u1ec7n<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>numbers = &#91;11, 15, 18, 21, 30&#93;\n\n# Find first even number\nfor index, value in enumerate(numbers):\n    if value % 2 == 0:\n        print(f\"First even number is {value} at index {index}\")\n        break\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">11<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">18<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">21<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Find first even number<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> index<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">enumerate<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">numbers<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;First even number is <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">value<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\"> at index <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">index<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">break<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">5.2 V\u00ed d\u1ee5: t\u00ecm t\u1ea5t c\u1ea3 ph\u1ea7n t\u1eed th\u1ecfa \u0111i\u1ec1u ki\u1ec7n<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>numbers = &#91;5, 12, 18, 7, 30, 2&#93;\n\n# Find all numbers greater than 10\ngreater_than_10 = &#91;value for value in numbers if value > 10&#93;\n\nprint(\"Elements greater than 10:\", greater_than_10)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">12<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">18<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">7<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Find all numbers greater than 10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">greater_than_10 <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">value <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> numbers <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Elements greater than 10:<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> greater_than_10<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>T\u00ecm ki\u1ebfm theo \u0111i\u1ec1u ki\u1ec7n m\u1edf r\u1ed9ng kh\u1ea3 n\u0103ng \u1ee9ng d\u1ee5ng c\u1ee7a list, \u0111\u1eb7c bi\u1ec7t trong x\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn ho\u1eb7c ph\u1ee9c t\u1ea1p.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. C\u00e1c thu\u1eadt to\u00e1n t\u00ecm ki\u1ebfm n\u00e2ng cao trong List<\/h2>\n\n\n\n<p>Ngo\u00e0i Linear Search v\u00e0 Binary Search, c\u00f2n c\u00f3 m\u1ed9t s\u1ed1 thu\u1eadt to\u00e1n n\u00e2ng cao kh\u00e1c:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.1 Jump Search<\/h3>\n\n\n\n<p>Jump Search chia list th\u00e0nh c\u00e1c \u0111o\u1ea1n c\u1ed1 \u0111\u1ecbnh (b\u01b0\u1edbc nh\u1ea3y \u221an) \u0111\u1ec3 t\u00ecm \u0111o\u1ea1n ch\u1ee9a gi\u00e1 tr\u1ecb c\u1ea7n t\u00ecm. Sau \u0111\u00f3, t\u00ecm tuy\u1ebfn t\u00ednh trong \u0111o\u1ea1n \u0111\u00f3.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ed9 ph\u1ee9c t\u1ea1p: O(\u221an)<\/li>\n\n\n\n<li>\u01afu \u0111i\u1ec3m: nhanh h\u01a1n Linear Search, d\u1ec5 c\u00e0i \u0111\u1eb7t.<\/li>\n\n\n\n<li>Nh\u01b0\u1ee3c \u0111i\u1ec3m: c\u1ea7n list \u0111\u00e3 s\u1eafp x\u1ebfp.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.2 Exponential Search<\/h3>\n\n\n\n<p>Exponential Search t\u0103ng ch\u1ec9 s\u1ed1 t\u00ecm ki\u1ebfm theo l\u0169y th\u1eeba 2 \u2192 Binary Search trong \u0111o\u1ea1n t\u00ecm \u0111\u01b0\u1ee3c.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ed9 ph\u1ee9c t\u1ea1p: O(log n)<\/li>\n\n\n\n<li>\u01afu \u0111i\u1ec3m: hi\u1ec7u qu\u1ea3 v\u1edbi list r\u1ea5t l\u1edbn.<\/li>\n\n\n\n<li>Nh\u01b0\u1ee3c \u0111i\u1ec3m: y\u00eau c\u1ea7u list ph\u1ea3i s\u1eafp x\u1ebfp.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.3 Interpolation Search<\/h3>\n\n\n\n<p>D\u1ef1 \u0111o\u00e1n v\u1ecb tr\u00ed c\u1ea7n t\u00ecm d\u1ef1a tr\u00ean gi\u00e1 tr\u1ecb \u2192 nh\u1ea3y tr\u1ef1c ti\u1ebfp \u0111\u1ebfn v\u1ecb tr\u00ed g\u1ea7n \u0111\u00fang.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ed9 ph\u1ee9c t\u1ea1p trung b\u00ecnh: O(log log n)<\/li>\n\n\n\n<li>Y\u00eau c\u1ea7u: d\u1eef li\u1ec7u ph\u00e2n b\u1ed1 \u0111\u1ec1u v\u00e0 \u0111\u00e3 s\u1eafp x\u1ebfp.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.4 Fibonacci Search<\/h3>\n\n\n\n<p>Chia nh\u1ecf list theo d\u00e3y Fibonacci thay v\u00ec chia \u0111\u00f4i nh\u01b0 Binary Search.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ed9 ph\u1ee9c t\u1ea1p: O(log n)<\/li>\n\n\n\n<li>\u01afu \u0111i\u1ec3m: ph\u00f9 h\u1ee3p v\u1edbi b\u1ed9 nh\u1edb cache.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.5 Hashing<\/h3>\n\n\n\n<p>T\u1ea1o b\u1ea3ng b\u0103m t\u1eeb list \u2192 tra c\u1ee9u O(1) trung b\u00ecnh.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u01afu \u0111i\u1ec3m: t\u00ecm c\u1ef1c nhanh.<\/li>\n\n\n\n<li>Nh\u01b0\u1ee3c \u0111i\u1ec3m: t\u1ed1n th\u00eam b\u1ed9 nh\u1edb \u0111\u1ec3 l\u01b0u b\u1ea3ng b\u0103m.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. So s\u00e1nh c\u00e1c ph\u01b0\u01a1ng ph\u00e1p t\u00ecm ki\u1ebfm trong List<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Ph\u01b0\u01a1ng ph\u00e1p<\/th><th>Y\u00eau c\u1ea7u s\u1eafp x\u1ebfp<\/th><th>\u0110\u1ed9 ph\u1ee9c t\u1ea1p<\/th><th>Khi n\u00e0o d\u00f9ng<\/th><\/tr><\/thead><tbody><tr><td>Linear Search<\/td><td>Kh\u00f4ng<\/td><td>O(n)<\/td><td>List nh\u1ecf ho\u1eb7c ch\u01b0a s\u1eafp x\u1ebfp<\/td><\/tr><tr><td>Binary Search<\/td><td>C\u00f3<\/td><td>O(log n)<\/td><td>List l\u1edbn, \u0111\u00e3 s\u1eafp x\u1ebfp<\/td><\/tr><tr><td>Bisect<\/td><td>C\u00f3<\/td><td>O(log n)<\/td><td>List l\u1edbn \u0111\u00e3 s\u1eafp x\u1ebfp<\/td><\/tr><tr><td>Jump Search<\/td><td>C\u00f3<\/td><td>O(\u221an)<\/td><td>List \u0111\u00e3 s\u1eafp x\u1ebfp v\u1eeba<\/td><\/tr><tr><td>Exponential Search<\/td><td>C\u00f3<\/td><td>O(log n)<\/td><td>List r\u1ea5t l\u1edbn<\/td><\/tr><tr><td>Interpolation<\/td><td>C\u00f3<\/td><td>O(log log n)<\/td><td>D\u1eef li\u1ec7u ph\u00e2n b\u1ed1 \u0111\u1ec1u<\/td><\/tr><tr><td>Fibonacci Search<\/td><td>C\u00f3<\/td><td>O(log n)<\/td><td>List \u0111\u00e3 s\u1eafp x\u1ebfp<\/td><\/tr><tr><td>Hashing<\/td><td>Kh\u00f4ng<\/td><td>O(1)<\/td><td>Tra c\u1ee9u nhi\u1ec1u l\u1ea7n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">8. \u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf<\/h2>\n\n\n\n<p>T\u00ecm ki\u1ebfm ph\u1ea7n t\u1eed trong list Python xu\u1ea5t hi\u1ec7n \u1edf r\u1ea5t nhi\u1ec1u t\u00ecnh hu\u1ed1ng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Qu\u1ea3n l\u00fd d\u1eef li\u1ec7u ng\u01b0\u1eddi d\u00f9ng ho\u1eb7c s\u1ea3n ph\u1ea9m.<\/li>\n\n\n\n<li>X\u1eed l\u00fd d\u1eef li\u1ec7u c\u1ea3m bi\u1ebfn ho\u1eb7c API.<\/li>\n\n\n\n<li>Tra c\u1ee9u d\u1eef li\u1ec7u l\u1edbn trong h\u1ec7 th\u1ed1ng.<\/li>\n<\/ul>\n\n\n\n<p>V\u00ed d\u1ee5: H\u1ec7 th\u1ed1ng qu\u1ea3n l\u00fd kho c\u1ea7n t\u00ecm s\u1ea3n ph\u1ea9m theo ID \u2192 d\u00f9ng Binary Search ho\u1eb7c Hashing \u0111\u1ec3 t\u0103ng t\u1ed1c \u0111\u1ed9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. K\u1ebft lu\u1eadn<\/h2>\n\n\n\n<p>T\u00ecm ki\u1ebfm ph\u1ea7n t\u1eed trong tuple l\u00e0 m\u1ed9t thao t\u00e1c t\u01b0\u1edfng ch\u1eebng \u0111\u01a1n gi\u1ea3n nh\u01b0ng l\u1ea1i c\u00f3 vai tr\u00f2 r\u1ea5t quan tr\u1ecdng trong l\u1eadp tr\u00ecnh Python. V\u00ec tuple l\u00e0 m\u1ed9t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u <strong>b\u1ea5t bi\u1ebfn<\/strong>, n\u00ean c\u00e1ch ti\u1ebfp c\u1eadn \u0111\u1ec3 t\u00ecm ki\u1ebfm s\u1ebd kh\u00e1c so v\u1edbi list, \u0111\u00f2i h\u1ecfi ch\u00fang ta ph\u1ea3i hi\u1ec3u r\u00f5 b\u1ea3n ch\u1ea5t c\u1ee7a tuple v\u00e0 l\u1ef1a ch\u1ecdn ph\u01b0\u01a1ng ph\u00e1p ph\u00f9 h\u1ee3p nh\u1ea5t cho t\u1eebng t\u00ecnh hu\u1ed1ng.<\/p>\n\n\n\n<p>Qua b\u00e0i vi\u1ebft, m\u00ecnh \u0111\u00e3 gi\u1edbi thi\u1ec7u nhi\u1ec1u ph\u01b0\u01a1ng ph\u00e1p t\u00ecm ki\u1ebfm ph\u1ea7n t\u1eed trong tuple, t\u1eeb c\u01a1 b\u1ea3n \u0111\u1ebfn n\u00e2ng cao, k\u00e8m v\u00ed d\u1ee5 minh h\u1ecda r\u00f5 r\u00e0ng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Linear Search<\/strong>: Ph\u01b0\u01a1ng ph\u00e1p tr\u1ef1c quan, d\u1ec5 hi\u1ec3u nh\u1ea5t, th\u00edch h\u1ee3p v\u1edbi tuple nh\u1ecf ho\u1eb7c khi d\u1eef li\u1ec7u ch\u01b0a \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp. M\u1eb7c d\u00f9 \u0111\u01a1n gi\u1ea3n, nh\u01b0ng khi tuple c\u00f3 k\u00edch th\u01b0\u1edbc l\u1edbn, hi\u1ec7u su\u1ea5t t\u00ecm ki\u1ebfm s\u1ebd gi\u1ea3m \u0111\u00e1ng k\u1ec3.<\/li>\n\n\n\n<li><strong>Ph\u01b0\u01a1ng th\u1ee9c <code>.index()<\/code><\/strong>: C\u00e1ch t\u00ecm ki\u1ebfm nhanh v\u00e0 ti\u1ec7n d\u1ee5ng nh\u1ea5t cho tuple, nh\u01b0ng v\u1eabn c\u00f3 \u0111\u1ed9 ph\u1ee9c t\u1ea1p O(n). Ph\u01b0\u01a1ng th\u1ee9c n\u00e0y ph\u00f9 h\u1ee3p v\u1edbi tuple c\u00f3 d\u1eef li\u1ec7u \u00edt ho\u1eb7c khi ch\u1ec9 c\u1ea7n t\u00ecm ph\u1ea7n t\u1eed duy nh\u1ea5t.<\/li>\n\n\n\n<li><strong>Binary Search<\/strong>: M\u1ed9t trong nh\u1eefng ph\u01b0\u01a1ng ph\u00e1p t\u00ecm ki\u1ebfm nhanh nh\u1ea5t, v\u1edbi \u0111\u1ed9 ph\u1ee9c t\u1ea1p O(log n), nh\u01b0ng y\u00eau c\u1ea7u tuple ph\u1ea3i \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp. N\u1ebfu d\u1eef li\u1ec7u ch\u01b0a s\u1eafp x\u1ebfp, c\u1ea7n chuy\u1ec3n \u0111\u1ed5i tuple th\u00e0nh list ho\u1eb7c s\u1eafp x\u1ebfp tr\u01b0\u1edbc khi t\u00ecm ki\u1ebfm.<\/li>\n\n\n\n<li><strong>S\u1eed d\u1ee5ng th\u01b0 vi\u1ec7n <code>bisect<\/code><\/strong>: Gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u cho tuple \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp, gi\u00fap t\u00ecm ki\u1ebfm nhanh ch\u00f3ng m\u00e0 kh\u00f4ng c\u1ea7n vi\u1ebft l\u1ea1i thu\u1eadt to\u00e1n th\u1ee7 c\u00f4ng. \u0110\u00e2y l\u00e0 l\u1ef1a ch\u1ecdn tuy\u1ec7t v\u1eddi cho c\u00e1c h\u1ec7 th\u1ed1ng c\u1ea7n x\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn.<\/li>\n\n\n\n<li><strong>T\u00ecm ki\u1ebfm theo \u0111i\u1ec1u ki\u1ec7n<\/strong>: Cung c\u1ea5p kh\u1ea3 n\u0103ng t\u00ecm ki\u1ebfm linh ho\u1ea1t h\u01a1n b\u1eb1ng c\u00e1ch \u00e1p d\u1ee5ng c\u00e1c \u0111i\u1ec1u ki\u1ec7n t\u00f9y ch\u1ec9nh. \u0110i\u1ec1u n\u00e0y \u0111\u1eb7c bi\u1ec7t h\u1eefu \u00edch trong x\u1eed l\u00fd d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p ho\u1eb7c khi c\u1ea7n l\u1ecdc d\u1eef li\u1ec7u t\u1eeb tuple.<\/li>\n\n\n\n<li><strong>Thu\u1eadt to\u00e1n t\u00ecm ki\u1ebfm n\u00e2ng cao<\/strong> (Jump Search, Exponential Search, Interpolation Search, Fibonacci Search, Hashing): L\u00e0 nh\u1eefng ph\u01b0\u01a1ng ph\u00e1p t\u1ed1i \u01b0u h\u01a1n cho c\u00e1c t\u00ecnh hu\u1ed1ng \u0111\u1eb7c th\u00f9, gi\u00fap gi\u1ea3m \u0111\u00e1ng k\u1ec3 th\u1eddi gian t\u00ecm ki\u1ebfm trong tuple l\u1edbn. Vi\u1ec7c \u00e1p d\u1ee5ng c\u00e1c thu\u1eadt to\u00e1n n\u00e0y \u0111\u00f2i h\u1ecfi hi\u1ec3u bi\u1ebft s\u00e2u h\u01a1n v\u1ec1 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u v\u00e0 t\u00ednh ch\u1ea5t c\u1ee7a d\u1eef li\u1ec7u.<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<p>Vi\u1ec7c l\u1ef1a ch\u1ecdn ph\u01b0\u01a1ng ph\u00e1p t\u00ecm ki\u1ebfm ph\u00f9 h\u1ee3p s\u1ebd ph\u1ee5 thu\u1ed9c v\u00e0o <strong>k\u00edch th\u01b0\u1edbc tuple<\/strong>, <strong>t\u1ea7n su\u1ea5t t\u00ecm ki\u1ebfm<\/strong>, <strong>t\u00ednh ch\u1ea5t d\u1eef li\u1ec7u<\/strong> v\u00e0 <strong>y\u00eau c\u1ea7u hi\u1ec7u su\u1ea5t<\/strong> c\u1ee7a \u1ee9ng d\u1ee5ng. \u0110\u1ed1i v\u1edbi tuple nh\u1ecf ho\u1eb7c d\u1eef li\u1ec7u \u00edt thay \u0111\u1ed5i, <code>.index()<\/code> ho\u1eb7c Linear Search l\u00e0 l\u1ef1a ch\u1ecdn \u0111\u01a1n gi\u1ea3n v\u00e0 \u0111\u1ee7 nhanh. V\u1edbi tuple l\u1edbn \u0111\u00e3 s\u1eafp x\u1ebfp ho\u1eb7c c\u1ea7n t\u00ecm ki\u1ebfm nhi\u1ec1u l\u1ea7n, Binary Search ho\u1eb7c <code>bisect<\/code> s\u1ebd mang l\u1ea1i hi\u1ec7u su\u1ea5t t\u1ed1t h\u01a1n. Trong nh\u1eefng tr\u01b0\u1eddng h\u1ee3p ph\u1ee9c t\u1ea1p h\u01a1n, c\u00e1c thu\u1eadt to\u00e1n n\u00e2ng cao s\u1ebd l\u00e0 gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. T\u00e0i li\u1ec7u tham kh\u1ea3o<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Python Software Foundation. <em>Built-in Types \u2014 tuple<\/em>. Python Documentation. Truy c\u1eadp t\u1ea1i: <a>https:\/\/docs.python.org\/3\/library\/stdtypes.html#tuple<\/a><\/li>\n\n\n\n<li>Python Software Foundation. <em>bisect \u2014 Array bisection algorithm<\/em>. Python Documentation. Truy c\u1eadp t\u1ea1i: <a>https:\/\/docs.python.org\/3\/library\/bisect.html<\/a><\/li>\n\n\n\n<li>Cormen, T. H., Leiserson, C. E., Rivest, R. L., &amp; Stein, C. (2009). <em>Introduction to Algorithms<\/em> (3rd ed.). MIT Press.<\/li>\n\n\n\n<li>Python for Professionals: Learning Python as a Second Language: <a href=\"https:\/\/click.linksynergy.com\/link?id=*C\/UgjGtUZ8&amp;offerid=1562891.3721710002222624882405978&amp;type=15&amp;murl=https%3A%2F%2Fwww.kobo.com%2Fus%2Fen%2Febook%2Fpython-for-professionals-3\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kobo.com\/us\/en\/ebook\/python-for-professionals-3<\/a><\/li>\n\n\n\n<li>Python: Deeper Insights into Machine Learning: <a href=\"https:\/\/click.linksynergy.com\/link?id=*C\/UgjGtUZ8&amp;offerid=1562891.3721710015810095319857183&amp;type=15&amp;murl=https%3A%2F%2Fwww.kobo.com%2Fus%2Fen%2Febook%2Fpython-deeper-insights-into-machine-learning\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kobo.com\/us\/en\/ebook\/python-deeper-insights-into-machine-learning<\/a><\/li>\n\n\n\n<li>DataFusion Python Bindings in Practice: The Complete Guide for Developers and Engineers: <a href=\"https:\/\/click.linksynergy.com\/link?id=*C\/UgjGtUZ8&amp;offerid=1562891.3721710049093362364820452&amp;type=15&amp;murl=https%3A%2F%2Fwww.kobo.com%2Fus%2Fen%2Febook%2Fdatafusion-python-bindings-in-practice\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kobo.com\/us\/en\/ebook\/datafusion-python-bindings-in-practice<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Trong l\u1eadp tr\u00ecnh Python, list l\u00e0 m\u1ed9t trong nh\u1eefng ki\u1ec3u d\u1eef li\u1ec7u ph\u1ed5 bi\u1ebfn nh\u1ea5t. Ch\u00fang&hellip;<\/p>\n","protected":false},"author":1,"featured_media":824,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"googlesitekit_rrm_CAowieHDDA:productID":"","footnotes":""},"categories":[41],"tags":[40],"class_list":["post-1539","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kien-thuc-lap-trinh","tag-python-co-ban"],"_links":{"self":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/comments?post=1539"}],"version-history":[{"count":2,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1539\/revisions"}],"predecessor-version":[{"id":2458,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1539\/revisions\/2458"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media\/824"}],"wp:attachment":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media?parent=1539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/categories?post=1539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/tags?post=1539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}