లీనియర్ సెర్చ్ మరియు బైనరీ సెర్చ్ మధ్య తేడా

రచయిత: Laura McKinney
సృష్టి తేదీ: 1 ఏప్రిల్ 2021
నవీకరణ తేదీ: 9 మే 2024
Anonim
సరళ శోధన vs బైనరీ శోధన
వీడియో: సరళ శోధన vs బైనరీ శోధన

విషయము


లీనియర్ సెర్చ్ మరియు బైనరీ సెర్చ్ అనేవి శ్రేణులలో ఉపయోగించబడే రెండు పద్ధతులు శోధన అంశాలు. శోధించడం అనేది ఏదైనా క్రమంలో లేదా యాదృచ్ఛికంగా నిల్వ చేయబడిన మూలకాల జాబితాలో ఒక మూలకాన్ని కనుగొనే ప్రక్రియ.

సరళ శోధన మరియు బైనరీ శోధన మధ్య ప్రధాన వ్యత్యాసం ఏమిటంటే, క్రమబద్ధీకరించబడిన మూలకాల జాబితా నుండి మూలకాన్ని శోధించడానికి బైనరీ శోధన తక్కువ సమయం పడుతుంది. కాబట్టి బైనరీ శోధన పద్ధతి యొక్క సామర్థ్యం సరళ శోధన కంటే ఎక్కువగా ఉందని er హించబడింది.

రెండింటి మధ్య మరొక వ్యత్యాసం ఏమిటంటే, బైనరీ శోధనకు ఒక అవసరం ఉంది, అనగా, అంశాలు తప్పనిసరిగా ఉండాలి క్రమబద్ధీకరించబడతాయి సరళ శోధనలో అటువంటి అవసరం లేదు. శోధన పద్ధతులు రెండూ వేర్వేరు పద్ధతులను ఉపయోగిస్తున్నప్పటికీ ఇవి క్రింద చర్చించబడ్డాయి.

  1. పోలిక చార్ట్
  2. నిర్వచనం
  3. కీ తేడాలు
  4. ముగింపు

పోలిక చార్ట్

పోలిక కోసం ఆధారంసరళ శోధనబైనరీ శోధన
సమయం సంక్లిష్టతపై)O (లాగ్ 2 N)
ఉత్తమ సందర్భ సమయంమొదటి మూలకం O (1)సెంటర్ ఎలిమెంట్ O (1)
శ్రేణికి అవసరంఅవసరం లేదుశ్రేణి క్రమబద్ధీకరించిన క్రమంలో ఉండాలి
మూలకాల సంఖ్యకు చెత్త కేసుN పోలికలు అవసరంలాగ్ తర్వాత మాత్రమే ముగించవచ్చు2N పోలికలు
దీనిపై అమలు చేయవచ్చుశ్రేణి మరియు లింక్డ్ జాబితాలింక్ చేసిన జాబితాలో నేరుగా అమలు చేయలేరు
ఆపరేషన్ చొప్పించండిజాబితా చివరిలో సులభంగా చేర్చబడుతుందిక్రమబద్ధీకరించిన జాబితాను నిర్వహించడానికి సరైన స్థలంలో చొప్పించడానికి ప్రాసెసింగ్ అవసరం.
అల్గోరిథం రకంప్రకృతిలో పునరావృతంప్రకృతిలో విభజించి జయించండి
ఉపయోగార్థాన్నిఉపయోగించడానికి సులభమైనది మరియు ఆదేశించిన మూలకాల అవసరం లేదు.ఏమైనప్పటికీ గమ్మత్తైన అల్గోరిథం మరియు అంశాలను క్రమంలో నిర్వహించాలి.
కోడ్ యొక్క పంక్తులుతక్కువమరింత


సరళ శోధన యొక్క నిర్వచనం

సరళ శోధనలో, శ్రేణి యొక్క ప్రతి మూలకం తార్కిక క్రమంలో ఒక్కొక్కటిగా తిరిగి పొందబడుతుంది మరియు అది కావలసిన మూలకం కాదా అని తనిఖీ చేస్తుంది. అన్ని అంశాలు ప్రాప్యత చేయబడితే, మరియు కావలసిన మూలకం కనుగొనబడకపోతే శోధన విజయవంతం కాదు. చెత్త సందర్భంలో, శ్రేణి యొక్క పరిమాణంలో సగం (n / 2) ను స్కాన్ చేయాల్సిన సగటు కేసు సంఖ్య.

అందువల్ల ఇచ్చిన శోధనను గుర్తించడానికి శ్రేణిని వరుసగా ప్రయాణించే సాంకేతికతగా సరళ శోధనను నిర్వచించవచ్చు. క్రింద ఇవ్వబడిన ప్రోగ్రామ్ శోధనను ఉపయోగించి శ్రేణి యొక్క మూలకం యొక్క శోధనను వివరిస్తుంది.

సమర్థత సరళ శోధన

శోధన పట్టికలో రికార్డును శోధించడంలో చేసిన సమయం వినియోగం లేదా పోలికల సంఖ్య సాంకేతికత యొక్క సామర్థ్యాన్ని నిర్ణయిస్తుంది. శోధన పట్టిక యొక్క మొదటి స్థానంలో కావలసిన రికార్డ్ ఉంటే, అప్పుడు ఒక పోలిక మాత్రమే చేయబడుతుంది. కావలసిన రికార్డ్ చివరిది అయినప్పుడు, n పోలికలు చేయవలసి ఉంటుంది. శోధన పట్టికలో ఎక్కడో ఒకవేళ రికార్డ్ ఉంటే, సగటున, పోలికల సంఖ్య ఉంటుంది (n + 1/2). ఈ సాంకేతికత యొక్క చెత్త సామర్థ్యం O (n) అంటే అమలు క్రమాన్ని సూచిస్తుంది.


సి ప్రోగ్రామ్ సరళ శోధన సాంకేతికతతో ఒక మూలకాన్ని శోధించడానికి.

# ఉన్నాయి # ఉన్నాయి void main () {int a, n, i, item, loc = -1; clrscr (); f ("element n మూలకం సంఖ్యను నమోదు చేయండి:"); scanf ("% d", & n); f ("సంఖ్యలను నమోదు చేయండి: n"); (i = 0; i <= n-1; i ++) {scanf ("% d", & a); } f (" n శోధించాల్సిన సంఖ్యను నమోదు చేయండి:"); scanf ("% d", & అంశం); (i = 0; i <= n-1; i ++) {if (అంశం == a) {loc = i; బ్రేక్; }} if (loc> = 0) {f ("% n% d స్థానంలో% d:", అంశం, లోక్ + 1); } else {f ("item n అంశం లేదు"); } getch (); }

బైనరీ శోధన యొక్క నిర్వచనం

బైనరీ శోధన చాలా సమర్థవంతమైన అల్గోరిథం. ఈ శోధన సాంకేతికత ఇచ్చిన అంశాన్ని కనీస పోలికలలో శోధించడానికి తక్కువ సమయం తీసుకుంటుంది. బైనరీ శోధన చేయడానికి, మొదట, మేము శ్రేణి అంశాలను క్రమబద్ధీకరించాలి.

ఈ సాంకేతికత వెనుక ఉన్న తర్కం క్రింద ఇవ్వబడింది:

  • మొదట, శ్రేణి యొక్క మధ్య మూలకాన్ని కనుగొనండి.
  • శ్రేణి యొక్క మధ్య మూలకం శోధించవలసిన మూలకంతో పోల్చబడుతుంది.

మూడు కేసులు తలెత్తవచ్చు:

  1. మూలకం అవసరమైన మూలకం అయితే, శోధన విజయవంతమవుతుంది.
  2. మూలకం కావలసిన అంశం కంటే తక్కువగా ఉన్నప్పుడు, శ్రేణి యొక్క మొదటి సగం మాత్రమే శోధించండి.
  3. ఇది కావలసిన మూలకం కంటే ఎక్కువగా ఉంటే, అప్పుడు శ్రేణి యొక్క రెండవ భాగంలో శోధించండి.

ఒక మూలకం కనుగొనబడే వరకు లేదా శోధన ప్రాంతంలో అయిపోయే వరకు అదే దశలను పునరావృతం చేయండి. ఈ అల్గోరిథంలో, ప్రతిసారీ శోధన ప్రాంతం తగ్గుతోంది. అందువల్ల పోలికల సంఖ్య చాలా లాగ్ (N + 1) వద్ద ఉంటుంది. ఫలితంగా, సరళ శోధనతో పోల్చినప్పుడు ఇది సమర్థవంతమైన అల్గోరిథం, కానీ బైనరీ శోధన చేయడానికి ముందు శ్రేణిని క్రమబద్ధీకరించాలి.

సి ప్రోగ్రామ్ బైనరీ సెర్చ్ టెక్నిక్‌తో ఒక మూలకాన్ని కనుగొనడానికి.

# ఉన్నాయి void main () {int i, beg, end, middle, n, search, array; f ("మూలకం సంఖ్యను నమోదు చేయండి n"); scanf ( "% d", & N); f ("% d సంఖ్యలను నమోదు చేయండి n", n); (i = 0; i <n; i ++) scanf ("% d", & array); f ("శోధించాల్సిన సంఖ్యను నమోదు చేయండి n"); scanf ("% d", & శోధన); beg = 0; end = n - 1; మధ్య = (యాచించు + ముగింపు) / 2; అయితే (యాచించు <= ముగింపు) {if (శ్రేణి <శోధన) బిచ్చగాడు = మధ్య + 1; else if (శ్రేణి == శోధన) {f ("శోధన విజయవంతమైంది.% n% d స్థానం% d వద్ద కనుగొనబడింది. n", శోధన, మధ్య + 1); బ్రేక్; } else ముగింపు = మధ్య - 1; మధ్య = (యాచించు + ముగింపు) / 2; } if (beg> end) f ("శోధన విజయవంతం కాలేదు!% d జాబితాలో లేదు. n", శోధన); getch (); }

  1. లీనియర్ సెర్చ్ ప్రకృతిలో పునరుక్తిగా ఉంటుంది మరియు సీక్వెన్షియల్ విధానాన్ని ఉపయోగిస్తుంది. మరోవైపు, బైనరీ శోధన విభజన మరియు విధానాన్ని జయించింది.
  2. సరళ శోధన యొక్క సమయ సంక్లిష్టత O (N) కాగా, బైనరీ శోధన O (లాగ్) కలిగి ఉంటుంది2N).
  3. సరళ శోధనలో ఉత్తమ సమయం మొదటి మూలకం అంటే, O (1). వ్యతిరేకంగా, బైనరీ శోధనలో, ఇది మధ్య మూలకం కోసం, అనగా, O (1).
  4. సరళ శోధనలో, ఒక మూలకాన్ని శోధించడానికి చెత్త సందర్భం పోలిక యొక్క N సంఖ్య. దీనికి విరుద్ధంగా, ఇది లాగ్2బైనరీ శోధన కోసం పోలిక యొక్క N సంఖ్య.
  5. సరళ శోధనను శ్రేణిలో మరియు లింక్ చేయబడిన జాబితాలో అమలు చేయవచ్చు, అయితే బైనరీ శోధన నేరుగా లింక్ చేయబడిన జాబితాలో అమలు చేయబడదు.
  6. మనకు తెలిసినట్లుగా బైనరీ శోధనకు క్రమబద్ధీకరించబడిన శ్రేణి అవసరం, దీనికి క్రమబద్ధీకరించబడిన జాబితాను నిర్వహించడానికి సరైన స్థలంలో చొప్పించడానికి ప్రాసెసింగ్ అవసరం. దీనికి విరుద్ధంగా సరళ శోధనకు క్రమబద్ధీకరించబడిన అంశాలు అవసరం లేదు, కాబట్టి అంశాలు జాబితా చివరిలో సులభంగా చేర్చబడతాయి.
  7. లీనియర్ సెర్చ్ ఉపయోగించడం సులభం, మరియు ఆర్డర్ చేసిన ఎలిమెంట్స్ అవసరం లేదు. మరోవైపు, బైనరీ సెర్చ్ అల్గోరిథం అయితే గమ్మత్తైనది, మరియు అంశాలు తప్పనిసరిగా క్రమంలో అమర్చబడి ఉంటాయి.

ముగింపు

అనువర్తనాన్ని బట్టి సరళ మరియు బైనరీ శోధన అల్గోరిథంలు రెండూ ఉపయోగపడతాయి. శ్రేణి అనేది డేటా నిర్మాణం మరియు మూలకాలను క్రమబద్ధీకరించిన క్రమంలో అమర్చినప్పుడు, బైనరీ శోధనకు ప్రాధాన్యత ఇవ్వబడుతుంది శీఘ్రశోధించడం. ఎలిమెంట్స్ ఎలా అమర్చబడినా సంబంధం లేకుండా లింక్డ్ జాబితా డేటా స్ట్రక్చర్ అయితే, బైనరీ సెర్చ్ అల్గోరిథం యొక్క ప్రత్యక్ష అమలు అందుబాటులో లేకపోవడం వల్ల సరళ శోధన స్వీకరించబడుతుంది.

విలక్షణమైన బైనరీ శోధన అల్గోరిథం లింక్ చేయబడిన జాబితాకు ఉపయోగించబడదు ఎందుకంటే లింక్ చేయబడిన జాబితా ప్రకృతిలో డైనమిక్ మరియు మధ్య మూలకం వాస్తవానికి ఎక్కడ కేటాయించబడిందో తెలియదు. అందువల్ల, బైనరీ సెర్చ్ అల్గోరిథం యొక్క వైవిధ్యాన్ని లింక్ చేయవలసిన జాబితాలో కూడా పని చేయవలసిన అవసరం ఉంది, ఎందుకంటే బైనరీ శోధన సరళ శోధన కంటే అమలులో వేగంగా ఉంటుంది.