శోధించడం మరియు క్రమబద్ధీకరించడం అల్గోరిథంలు ప్రసిద్ధ అల్గోరిథంలు ఏదైనా ప్రోగ్రామింగ్ భాషలలో. ప్రోగ్రామింగ్ యొక్క ప్రాథమికాలను అర్థం చేసుకోవడానికి అవి ఆధారం. అటువంటి ప్రసిద్ధ శోధన అల్గోరిథం బైనరీ సెర్చ్ ఇన్ . ఈ వ్యాసంలో, దాని అమలు గురించి నేను మీకు చెప్తాను.
ఈ వ్యాసంలో క్రింద విషయాలు ఉన్నాయి:
ప్రారంభిద్దాం!
బైనరీ శోధన అంటే ఏమిటి?
బైనరీ శోధన ఒక క్రమబద్ధీకరించబడిన లక్ష్య విలువ యొక్క స్థానాన్ని కనుగొనే శోధన అల్గోరిథం అమరిక . బైనరీ శోధన లక్ష్య విలువను శ్రేణి యొక్క మధ్య మూలకంతో పోలుస్తుంది. ఇదిక్రమబద్ధీకరించిన మూలకాల సమితిలో మాత్రమే పనిచేస్తుంది. సేకరణలో బైనరీ శోధనను ఉపయోగించడానికి, ది మొదట క్రమబద్ధీకరించబడాలి.
ఎప్పుడు అయితే క్రమబద్ధీకరించబడిన సమితిలో కార్యకలాపాలను నిర్వహించడానికి ఉపయోగించబడుతుంది, శోధించబడుతున్న విలువ ఆధారంగా పునరావృత సంఖ్యను ఎల్లప్పుడూ తగ్గించవచ్చు. మీరు కనుగొనే పై స్నాప్షాట్లో చూడవచ్చు మధ్య మూలకం . బైనరీ శోధన యొక్క సారూప్యత ఏమిటంటే, శ్రేణి క్రమబద్ధీకరించబడిన సమాచారాన్ని ఉపయోగించడం మరియు సమయ సంక్లిష్టతను తగ్గించడం O (లాగ్ n) .
బైనరీ శోధన అల్గోరిథం అమలు చేస్తోంది
దీన్ని మరింత బాగా అర్థం చేసుకోవడానికి దిగువ నకిలీ కోడ్ను పరిశీలిద్దాం.
విధానం binary_search A & larr క్రమబద్ధీకరించబడిన శ్రేణి n & లార్ పరిమాణం యొక్క శ్రేణి x & లార్ విలువ శోధించబడాలి తక్కువ సెట్ చేయండి = 1 అధిక = n సెట్ చేయండి, అయితే x కనుగొనబడకపోతే x కనుగొనబడలేదువివరణ:
దశ 1: మొదట, x ను మధ్య మూలకంతో పోల్చండి.
దశ 2: X మధ్య మూలకంతో సరిపోలితే, మీరు మధ్య సూచికను తిరిగి ఇవ్వాలి.
దశ 3: లేకపోతే, మధ్య మూలకం కంటే x ఎక్కువగా ఉంటే, x మధ్య మూలకం తర్వాత కుడి వైపు సగం శ్రేణిలో మాత్రమే ఉంటుంది. అందువల్ల మీరు కుడి సగం పునరావృతమవుతారు.
దశ 4: లేకపోతే, (x చిన్నది అయితే) ఎడమ సగం కోసం పునరావృతమవుతుంది.
మీరు ఇచ్చిన శ్రేణిలోని మూలకం కోసం శోధించాల్సిన అవసరం ఉంది.
జావాస్క్రిప్ట్లో హెచ్చరికను ఎలా వ్రాయాలిబైనరీ సెర్చ్ అల్గోరిథంను పునరావృతంగా ఎలా అమలు చేయాలో ఇప్పుడు చూద్దాం. క్రింద ప్రోగ్రామ్ అదే ప్రదర్శిస్తుంది.
పునరావృత బైనరీ శోధన
పబ్లిక్ క్లాస్ బైనరీ సెర్చ్ {// పునరావృత బైనరీ సెర్చ్ యొక్క జావా అమలు // ఇది అర్రే [l..h] లో ఉంటే x యొక్క సూచికను అందిస్తుంది, లేకపోతే -1 int బైనరీ సెర్చ్ (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // మూలకం మధ్యలో ఉంటే (a [mid] == x) తిరిగి మధ్యలో // ఉంటే మూలకం (a [mid]> x) తిరిగి బైనరీ శోధన (arr, l, mid - 1, x) // లేకపోతే అది ఎడమ సబ్రేలో మాత్రమే ఉంటుంది, లేకపోతే మూలకం కుడి సబ్రే రిటర్న్ బైనరీ సెర్చ్లో మాత్రమే ఉంటుంది (arr, mid + 1, h, x)} // అర్రే రిటర్న్ -1} పబ్లిక్ స్టాటిక్ వాయిడ్ మెయిన్ (స్ట్రింగ్ అర్గ్స్ []) లో మూలకం లేనప్పుడు మేము ఇక్కడకు చేరుకుంటాము {బైనరీ సెర్చ్ ఓబ్ = కొత్త బైనరీ సెర్చ్ () int a [] = {20, 30, 40, 10, 50} int n = a.length int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('ఎలిమెంట్ లేదు') else System.out.println ('సూచిక వద్ద మూలకం కనుగొనబడింది' + res)}}పై ప్రోగ్రామ్ను అమలు చేస్తున్నప్పుడు, ఇది నిర్దిష్ట సూచిక వద్ద ఉన్న మూలకాన్ని కనుగొంటుంది
సూచిక 2 వద్ద మూలకం కనుగొనబడిందికాబట్టి ఇది మమ్మల్ని బైనరీ శోధన చివరికి తీసుకువస్తుంది జావా వ్యాసం. మీరు దీన్ని సమాచారంగా కనుగొన్నారని మరియు అర్థం చేసుకోవడంలో మీకు సహాయపడ్డారని నేను ఆశిస్తున్నాను .
చూడండి ప్రపంచవ్యాప్తంగా విస్తరించి ఉన్న 250,000 మందికి పైగా సంతృప్తికరమైన అభ్యాసకుల నెట్వర్క్తో విశ్వసనీయ ఆన్లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఈ జావా ఇంటర్వ్యూ ప్రశ్నలతో పాటుగా మీ ప్రయాణంలో అడుగడుగునా మీకు సహాయం చేయడానికి మేము ఇక్కడ ఉన్నాము. మేము జావా డెవలపర్గా ఉండాలనుకునే విద్యార్థులు మరియు నిపుణుల కోసం రూపొందించిన పాఠ్యాంశాలతో ముందుకు వచ్చాము. ఈ కోర్సు మీకు జావా ప్రోగ్రామింగ్లోకి రావడానికి మరియు హైబర్నేట్ & స్ప్రింగ్ వంటి వివిధ జావా ఫ్రేమ్వర్క్లతో పాటు కోర్ మరియు అడ్వాన్స్డ్ జావా కాన్సెప్ట్ల కోసం మీకు శిక్షణ ఇవ్వడానికి రూపొందించబడింది.
ఒకవేళ బైనరీ శోధనను అమలు చేసేటప్పుడు మీకు ఏమైనా ఇబ్బందులు ఎదురవుతాయి , దయచేసి దిగువ వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము త్వరగా మీ వద్దకు వస్తాము.