Байланыстырылған тізімді екілік іздеуге болады ма?
Байланыстырылған тізімді екілік іздеуге болады ма?

Бейне: Байланыстырылған тізімді екілік іздеуге болады ма?

Бейне: Байланыстырылған тізімді екілік іздеуге болады ма?
Бейне: 😔ОСЫ 7 ҚАТЕ ҮШІН АДАМДАР СІЗДІ БАҒАЛАМАЙДЫ! 2024, Мамыр
Anonim

Иә, Екілік іздеу бойынша мүмкін байланыстырылған тізім, егер the тізім тапсырыс беріледі және сен элементтердің санын білу тізім . Бірақ сұрыптау кезінде тізім , сен істей аласың сол түйінге көрсеткіш арқылы бір уақытта бір элементке қол жеткізу, яғни алдыңғы түйін немесе келесі түйін.

Дәл солай, байланыстырылған тізімде екілік іздеу қолданылған кезде уақыт күрделілігі қандай болады?

Уақыттың күрделілігі O(log n) мәнінен артық болмауы керек. ретінде байланыстырылған тізім жасайды әрекет етсек, кездейсоқ қол жеткізуді қамтамасыз етпейді екілік іздеуді қолданыңыз оны алгоритм ерік Бізге қажетінше O(n) жетеді табу ұзындығы тізім және ортасына барыңыз.

Сондай-ақ біліңіз, екілік іздеу қалай жүзеге асырылады? Екілік іздеу : Іздеу қайта-қайта бөлу арқылы сұрыпталған массив іздеу жарты аралығы. Бүкіл массивті қамтитын интервалдан бастаңыз. Егер мәні іздеу перне интервалдың ортасындағы элементтен аз, аралықты төменгі жартыға дейін тарылту. Әйтпесе, оны жоғарғы жартыға дейін тарылтыңыз.

Екілік іздеу тізімдегі элементті табу үшін қандай әдісті пайдаланады?

Екілік іздеу сұрыпталған массивтерде жұмыс істейді. Екілік іздеу салыстыру арқылы басталады элемент мақсатпен массивтің ортасында мән . Мақсат болса мән сәйкес келеді элемент , оның массивтегі орны қайтарылады. Мақсат болса мән қарағанда аз элемент , the іздеу массивтің төменгі жартысында жалғасады.

Байланыстырылған тізім арқылы қалай қайталайсыз?

Ан Итератор цикл үшін пайдалануға болады арқылы а LinkedList . hasNext() әдісі көбірек элементтер болса, true мәнін қайтарады LinkedList және басқаша жалған. next() әдісі келесі элементті қайтарады LinkedList және келесі элемент болмаса, NoSuchElementException ерекше жағдайды шығарады.

Ұсынылған: