{"id":223,"date":"2024-11-10T22:59:45","date_gmt":"2024-11-10T22:59:45","guid":{"rendered":"https:\/\/akosgombkoto.info\/?page_id=223"},"modified":"2025-01-15T09:36:34","modified_gmt":"2025-01-15T09:36:34","slug":"binaris-kereses-algoritmus","status":"publish","type":"page","link":"https:\/\/akosgombkoto.info\/en\/binaris-kereses-algoritmus\/","title":{"rendered":"Bin\u00e1ris keres\u00e9s algoritmus"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Header&#8221; _builder_version=&#8221;4.27.3&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_2,1_2&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;0px|||||&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/akosgombkoto.info\/wp-content\/uploads\/2025\/01\/data-science-070-2.png&#8221; title_text=&#8221;data-science-070-2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;220px&#8221; max_width_last_edited=&#8221;off|tablet&#8221; max_height_tablet=&#8221;200px&#8221; max_height_phone=&#8221;100px&#8221; max_height_last_edited=&#8221;on|phone&#8221; custom_margin=&#8221;|||-8vw|false|false&#8221; custom_margin_tablet=&#8221;|||0vw|false|false&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|tablet&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;120px||||false|false&#8221; custom_padding_tablet=&#8221;0px||||false|false&#8221; custom_padding_phone=&#8221;&#8221; custom_padding_last_edited=&#8221;on|tablet&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.3&#8243; _module_preset=&#8221;d72c0383-6487-4f2c-ac5c-7d48a6376757&#8243; header_font=&#8221;Roboto Slab||||||||&#8221; header_text_color=&#8221;#000000&#8243; header_font_size=&#8221;52px&#8221; header_line_height=&#8221;1.2em&#8221; custom_margin=&#8221;||10px||false|false&#8221; header_font_size_tablet=&#8221;40px&#8221; header_font_size_phone=&#8221;20px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Bin\u00e1ris keres\u00e9si algoritmus<\/h1>\n<p>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/akosgombkoto.info\/wp-content\/uploads\/2024\/11\/03_Binary_Search_Kepernyokep-2024-11-09-204252-1.png&#8221; title_text=&#8221;03_Binary_Search_K\u00e9perny\u0151k\u00e9p 2024-11-09 204252 (1)&#8221; show_in_lightbox=&#8221;on&#8221; _builder_version=&#8221;4.27.3&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Blog&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Roboto Mono||||||||&#8221; text_text_color=&#8221;#fcb03a&#8221; text_font_size=&#8221;18px&#8221; text_line_height=&#8221;1.8em&#8221; background_color=&#8221;#042f4f&#8221; custom_padding=&#8221;15px|20px|15px|20px|true|true&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<p style=\"text-align: justify;\">A Binary Search az egyik leggyakrabban alkalmazott list\u00e1ban val\u00f3 keres\u00e9sre alkalmas algoritmus.<br \/>A k\u00f3dja k\u00e9tszer lett lefuttatva, mint a k\u00e9pen l\u00e1tszik, van benne hibakezel\u00e9s, azaz az 52-es elemet megtal\u00e1lja a k\u00f3dban l\u00e9v\u0151 list\u00e1b\u00f3l, mint az a Visual Studio-ban k\u00e9sz\u00fclt k\u00f3dr\u00f3l k\u00e9sz\u00fclt k\u00e9p parancssor\u00e1ban l\u00e1tszik, a 61-es elemre pedig ki\u00edrja, hogy nem a lista r\u00e9sze, mint ahogy az igaz is.<\/p>\n<p>[\/et_pb_text][et_pb_toggle title=&#8221;Binary Search m\u0171k\u00f6d\u00e9se: (leny\u00edl\u00f3 tartalom &#8211; kattints a jobb sz\u00e9ls\u0151 + ikonra)&#8221; open_toggle_text_color=&#8221;#fcb03a&#8221; open_toggle_background_color=&#8221;#042f4f&#8221; closed_toggle_text_color=&#8221;#fcb03a&#8221; closed_toggle_background_color=&#8221;#042f4f&#8221; icon_color=&#8221;#fcb03a&#8221; open_icon_color=&#8221;#fcb03a&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; title_font_size=&#8221;18px&#8221; closed_title_font_size=&#8221;18px&#8221; body_text_color=&#8221;#FFFFFF&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<p style=\"text-align: justify;\">A Binary Search (Bin\u00e1ris Keres\u00e9s) egy hat\u00e9kony algoritmus rendezett list\u00e1kban val\u00f3 keres\u00e9sre, amely az oszd meg \u00e9s uralkodj (divide and conquer) elvet alkalmazza. A m\u0171k\u00f6d\u00e9si elve a k\u00f6vetkez\u0151:<\/p>\n<p style=\"text-align: justify;\">1. Felt\u00e9telek:<br \/>A bin\u00e1ris keres\u00e9s m\u0171k\u00f6d\u00e9s\u00e9hez elengedhetetlen, hogy a keresett adatokat tartalmaz\u00f3 lista rendezett legyen, teh\u00e1t a lista elemei n\u00f6vekv\u0151 (vagy cs\u00f6kken\u0151) sorrendben legyenek rendezve.<\/p>\n<p style=\"text-align: justify;\">2. Kezd\u0151 felt\u00e9telez\u00e9s:<br \/>A keres\u00e9st a lista k\u00f6z\u00e9ps\u0151 elem\u00e9vel kezdj\u00fck. A lista eleje (left) \u00e9s v\u00e9ge (right) mutatja, hogy a keres\u00e9s melyik r\u00e9sz\u00e9n dolgozunk.<\/p>\n<p style=\"text-align: justify;\">3. K\u00f6z\u00e9ps\u0151 elem vizsg\u00e1lata:<br \/>Ha a k\u00f6z\u00e9ps\u0151 elem a keresett elem, akkor a keres\u00e9s sikeres, \u00e9s a keresett elem poz\u00edci\u00f3j\u00e1t adjuk vissza.<br \/>Ha a k\u00f6z\u00e9ps\u0151 elem kisebb, mint a keresett elem, akkor a keres\u00e9s a jobb oldalra (a k\u00f6z\u00e9ps\u0151 elem ut\u00e1ni r\u00e9szre) folytat\u00f3dik.<br \/>Ha a k\u00f6z\u00e9ps\u0151 elem nagyobb, mint a keresett elem, akkor a keres\u00e9s a bal oldalra (a k\u00f6z\u00e9ps\u0151 elem el\u0151tti r\u00e9szre) folytat\u00f3dik.<br \/>4. Sz\u0171k\u00edt\u00e9s:<br \/>A keres\u00e9si tartom\u00e1nyt minden egyes l\u00e9p\u00e9sn\u00e9l a k\u00f6z\u00e9ps\u0151 elem alapj\u00e1n fel\u00e9re cs\u00f6kkentj\u00fck. Ez\u00e1ltal a keres\u00e9si tartom\u00e1ny egyre kisebb lesz, \u00e9s gyorsabban el\u00e9rhetj\u00fck a keresett elemet.<\/p>\n<p style=\"text-align: justify;\">5. Befejez\u00e9s:<br \/>A keres\u00e9s akkor fejez\u0151dik be, ha a keresett elem meg lesz tal\u00e1lva vagy ha a bal oldali mutat\u00f3 (left) nagyobb, mint a jobb oldali mutat\u00f3 (right), ami azt jelenti, hogy az elem nincs a list\u00e1ban.<\/p>\n<p style=\"text-align: justify;\">P\u00e9lda:<br \/>Tegy\u00fck fel, hogy egy rendezett list\u00e1ban szeretn\u00e9nk megtal\u00e1lni a 40-et:<\/p>\n<p style=\"text-align: justify;\">[10, 20, 30, 40, 50, 60, 70, 80]<br \/>Els\u0151 l\u00e9p\u00e9s:<br \/>Bal oldali mutat\u00f3: left = 0<br \/>Jobb oldali mutat\u00f3: right = 7<br \/>A k\u00f6z\u00e9ps\u0151 elem: arr[3] = 40<br \/>Mivel a k\u00f6z\u00e9ps\u0151 elem megegyezik a keresett elemmel (40), a keres\u00e9s sikeres.<br \/>Id\u0151bonyolults\u00e1g:<br \/>A bin\u00e1ris keres\u00e9s minden l\u00e9p\u00e9sben a keres\u00e9si tartom\u00e1ny fel\u00e9re cs\u00f6kkenti a vizsg\u00e1land\u00f3 elemek sz\u00e1m\u00e1t, \u00edgy az algoritmus logaritmikus id\u0151bonyolults\u00e1g\u00fa, azaz O(log n), ahol n a lista elemeinek sz\u00e1ma. A legrosszabb esetben is csup\u00e1n logaritmikus sz\u00e1m\u00fa l\u00e9p\u00e9st kell v\u00e9grehajtani.<\/p>\n<p style=\"text-align: justify;\">El\u0151ny\u00f6k:<br \/>Nagy rendezett list\u00e1kban is gyors keres\u00e9st tesz lehet\u0151v\u00e9.<br \/>Mivel minden l\u00e9p\u00e9sben a fel\u00e9re cs\u00f6kkenti a vizsg\u00e1lt tartom\u00e1nyt, nagyon gyorsan megtal\u00e1lhatjuk a keresett elemet.<br \/>H\u00e1tr\u00e1nyok:<br \/>A lista rendezett kell, hogy legyen. Ha a lista nem rendezett, el\u0151bb rendezni kell, ami plusz id\u0151t \u00e9s k\u00f6lts\u00e9get jelenthet.<\/p>\n<p>[\/et_pb_toggle][et_pb_toggle title=&#8221;K\u00f3dmag: (leny\u00edl\u00f3 tartalom &#8211; kattints a jobb sz\u00e9ls\u0151 + ikonra)&#8221; open_toggle_text_color=&#8221;#fcb03a&#8221; open_toggle_background_color=&#8221;#042f4f&#8221; closed_toggle_text_color=&#8221;#fcb03a&#8221; closed_toggle_background_color=&#8221;#042f4f&#8221; icon_color=&#8221;#fcb03a&#8221; open_icon_color=&#8221;#fcb03a&#8221; _builder_version=&#8221;4.27.3&#8243; _module_preset=&#8221;default&#8221; title_font_size=&#8221;18px&#8221; closed_title_font_size=&#8221;18px&#8221; body_text_color=&#8221;#FFFFFF&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.8em&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<pre class=\"aLF-aPX-K0-aPE\">def binary_search(list, target):\n    left, right = 0, len(list) - 1\n    \n    while left &lt;= right:\n        mid = (left + right) \/\/ 2\n        \n        # Ha a k\u00f6z\u00e9ps\u0151 elem az, amit keres\u00fcnk\n        if list[mid] == target:\n            return mid\n        \n        # Ha a k\u00f6z\u00e9ps\u0151 elem nagyobb, akkor a bal oldalra keres\u00fcnk tov\u00e1bb\n        elif list[mid] &gt; target:\n            right = mid - 1\n        \n        # Ha a k\u00f6z\u00e9ps\u0151 elem kisebb, akkor a jobb oldalra keres\u00fcnk tov\u00e1bb\n        else:\n            left = mid + 1\n            \n    # Ha nem tal\u00e1lhat\u00f3 az elem\n    return -1\n\nlist = [11, 34, 52, 76, 93, 110, 67, 47,98, 75]\ntarget = 52\n\nindex = binary_search(list, target)\nif index != -1:\n    print(f\"Az elem ({target}) megtal\u00e1lhat\u00f3 az {index} indexen.\")\nelse:\n    print(f\"Az elem ({target}) nem tal\u00e1lhat\u00f3 a list\u00e1ban.\")<\/pre>\n<p><code><\/code><\/p>\n<p>[\/et_pb_toggle][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bin\u00e1ris keres\u00e9si algoritmusA Binary Search az egyik leggyakrabban alkalmazott list\u00e1ban val\u00f3 keres\u00e9sre alkalmas algoritmus.A k\u00f3dja k\u00e9tszer lett lefuttatva, mint a k\u00e9pen l\u00e1tszik, van benne hibakezel\u00e9s, azaz az 52-es elemet megtal\u00e1lja a k\u00f3dban l\u00e9v\u0151 list\u00e1b\u00f3l, mint az a Visual Studio-ban k\u00e9sz\u00fclt k\u00f3dr\u00f3l k\u00e9sz\u00fclt k\u00e9p parancssor\u00e1ban l\u00e1tszik, a 61-es elemre pedig ki\u00edrja, hogy nem a lista r\u00e9sze, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-223","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/pages\/223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/comments?post=223"}],"version-history":[{"count":14,"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/pages\/223\/revisions"}],"predecessor-version":[{"id":691,"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/pages\/223\/revisions\/691"}],"wp:attachment":[{"href":"https:\/\/akosgombkoto.info\/en\/wp-json\/wp\/v2\/media?parent=223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}