நீங்கள் தெரிந்து கொள்ள வேண்டிய ஜாவாவில் சிறந்த தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள்



ஜாவாவில் உள்ள தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள் குறித்த இந்த வலைப்பதிவு ஜாவாவில் உள்ள அனைத்து முக்கிய தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகளைப் புரிந்துகொள்ள உதவும்.

மென்பொருள் மேம்பாட்டில் மிக முக்கியமான ஒற்றை தலைப்பை நான் தேர்வு செய்ய நேர்ந்தால், அது தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகளாக இருக்கும். ஒவ்வொரு கணினி புரோகிராமருக்கும் கிடைக்கும் அடிப்படை கருவியாக இதை நீங்கள் நினைக்கலாம். நிரலாக்க போது, ​​நாங்கள் பயன்படுத்துகிறோம் தரவு கட்டமைப்புகள் தரவை சேமிக்கவும் ஒழுங்கமைக்கவும், மற்றும் வழிமுறைகள் அந்த கட்டமைப்புகளில் தரவை கையாள. இந்த கட்டுரையில் உள்ள அனைத்து பொதுவான தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகளின் விரிவான ஆய்வு உள்ளது வாசகர்கள் நன்கு பொருத்தப்பட்டவர்களாக இருக்க அனுமதிக்க.

இந்த கட்டுரையில் விவாதிக்கப்பட்ட தலைப்புகள் கீழே பட்டியலிடப்பட்டுள்ளன:





ஜாவாவில் தரவு கட்டமைப்புகள்

தரவு கட்டமைப்பு என்பது ஒரு கணினியில் தரவை சேமித்து ஒழுங்கமைப்பதற்கான ஒரு வழியாகும், இதனால் அதை திறம்பட பயன்படுத்த முடியும். பெரிய அளவிலான தரவை திறமையாக நிர்வகிக்க இது ஒரு வழிமுறையை வழங்குகிறது. திறமையான வழிமுறைகளை வடிவமைப்பதில் திறமையான தரவு கட்டமைப்புகள் முக்கியம்.

c ++ ஃபைபோனச்சி வரிசை

இல்இந்த ‘ஜாவாவில் தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள்’ கட்டுரை, போன்ற அடிப்படை தரவு கட்டமைப்புகளை நாங்கள் மறைக்கப் போகிறோம்:



அவை ஒவ்வொன்றையும் பார்ப்போம்.

ஜாவாவில் நேரியல் தரவு கட்டமைப்புகள்

இல் நேரியல் தரவு கட்டமைப்புகள் அவற்றின் கூறுகள் தொடர்ச்சியானவை மற்றும் ஒரு வழியில் வரிசைப்படுத்தப்பட்டவை: ஒன்று மட்டுமே உள்ளது முதல் உறுப்பு மற்றும் ஒரே ஒரு உள்ளது அடுத்த உறுப்பு , அங்கே ஒன்று மட்டும் இருக்கிறது கடைசி உறுப்பு மற்றும் ஒரே ஒரு உள்ளது முந்தைய உறுப்பு , மற்ற எல்லா கூறுகளும் a அடுத்தது மற்றும் ஒரு முந்தையது உறுப்பு.

வரிசைகள்

ஒரு வரிசை ஒரு நேரியல் தரவு அமைப்புகுறியீட்டால் அணுகப்பட்ட ஒத்த கூறுகளின் குழுவைக் குறிக்கும். தரவைச் சேமிப்பதற்கு முன் ஒரு வரிசையின் அளவு வழங்கப்பட வேண்டும். வரிசையின் பண்புகள் கீழே பட்டியலிடப்பட்டுள்ளன:



  • ஒரு வரிசையில் உள்ள ஒவ்வொரு உறுப்புக்கும் ஒரே தரவு வகை மற்றும் ஒரே அளவு உள்ளது
  • வரிசையின் கூறுகள் தொடர்ச்சியான நினைவக இடங்களில் சேமிக்கப்படுகின்றன, முதல் உறுப்பு மிகச்சிறிய நினைவக இடத்தில் தொடங்குகிறது
  • வரிசையின் கூறுகளை தோராயமாக அணுகலாம்
  • வரிசை தரவு அமைப்பு முற்றிலும் மாறும் அல்ல

வரிசைகள் - எடுரேகா

உதாரணத்திற்கு , அந்த விளையாட்டுக்கான முதல் பத்து மதிப்பெண்களைக் கண்காணிக்க வீடியோ கேம் வேண்டும். பத்து வித்தியாசமாகப் பயன்படுத்துவதை விட மாறிகள் இந்த பணிக்காக, முழுக் குழுவிற்கும் ஒரு பெயரைப் பயன்படுத்தலாம் மற்றும் அந்தக் குழுவில் அதிக மதிப்பெண்களைக் குறிக்க குறியீட்டு எண்களைப் பயன்படுத்தலாம்.

இணைக்கப்பட்ட பட்டியல்

TO பல முனைகளின் தொகுப்பைக் கொண்ட ஒரு நேரியல் தரவு அமைப்பு, இங்கு இach உறுப்பு அதன் சொந்த தரவையும் அடுத்த உறுப்பு இருப்பிடத்திற்கு ஒரு சுட்டிக்காட்டி சேமிக்கிறது. இணைக்கப்பட்ட பட்டியலில் கடைசி இணைப்பு பூஜ்யமாக சுட்டிக்காட்டுகிறது, இது சங்கிலியின் முடிவைக் குறிக்கிறது. இணைக்கப்பட்ட பட்டியலில் உள்ள ஒரு உறுப்பு a என அழைக்கப்படுகிறது முனை . முதல் முனை என்று அழைக்கப்படுகிறது தலை .கடைசி முனை அழைக்கப்படுகிறதுதி வால் .

இணைக்கப்பட்ட பட்டியலின் வகைகள்

ஒற்றை இணைக்கப்பட்ட பட்டியல் (ஒற்றை-திசை)

இரட்டிப்பாக இணைக்கப்பட்ட பட்டியல் (இரு திசை)

வட்ட இணைக்கப்பட்ட பட்டியல்

இங்கே ஒரு எளிய எடுத்துக்காட்டு: ஒன்றாக இணைக்கப்பட்டுள்ள காகிதக் கிளிப்புகள் சங்கிலி போன்ற இணைக்கப்பட்ட பட்டியலை கற்பனை செய்து பாருங்கள். நீங்கள் மேலே அல்லது கீழே மற்றொரு காகிதக் கிளிப்பை எளிதாக சேர்க்கலாம். ஒன்றை நடுவில் செருகுவது கூட விரைவானது. நீங்கள் செய்ய வேண்டியது எல்லாம் நடுவில் சங்கிலியைத் துண்டித்து, புதிய காகிதக் கிளிப்பைச் சேர்த்து, மற்ற பாதியை மீண்டும் இணைக்க வேண்டும். இணைக்கப்பட்ட பட்டியல் ஒத்திருக்கிறது.

அடுக்குகள்

அடுக்கு, ஒரு சுருக்க தரவு அமைப்பு, ஒரு தொகுப்பு பொருள்கள் அவை செருகப்பட்டு அகற்றப்படுகின்றன கடைசியாக முதல்-அவுட் (LIFO) கொள்கை. எந்த நேரத்திலும் பொருள்களை ஒரு அடுக்கில் செருக முடியும், ஆனால் மிக சமீபத்தில் செருகப்பட்ட (அதாவது “கடைசி”) பொருளை மட்டுமே எந்த நேரத்திலும் அகற்ற முடியும்.கீழே பட்டியலிடப்பட்டிருப்பது ஒரு அடுக்கின் பண்புகள்:

  • இது ஒரு ஒழுங்குபடுத்தப்பட்ட பட்டியல்செருகல் மற்றும் நீக்குதல் எனப்படும் ஒரு முனையில் மட்டுமே செய்ய முடியும் மேல்
  • அதன் மேல் உறுப்புக்கு ஒரு சுட்டிக்காட்டி கொண்ட சுழல்நிலை தரவு அமைப்பு
  • பின்வருமாறு கடைசியாக முதல்-அவுட் (LIFO) கொள்கை
  • இரண்டு மிக அடிப்படை முறைகளை ஆதரிக்கிறது
    • மிகுதி (இ): உறுப்பு e ஐ அடுக்கின் மேல் செருகவும்
    • பாப் (): அடுக்கில் உள்ள மேல் உறுப்பை அகற்றி திருப்பித் தரவும்

ஒரு வார்த்தையை மாற்றியமைக்கும்போது அடுக்கின் நடைமுறை எடுத்துக்காட்டுகள் அடங்கும்,இன் சரியான தன்மையை சரிபார்க்க அடைப்புக்குறிக்குள்வரிசை,உலாவிகளில் மீண்டும் செயல்பாட்டை செயல்படுத்துகிறது மற்றும் பல.

வரிசைகள்

மற்றொரு வகை சுருக்க தரவு கட்டமைப்பும் ஆகும். ஒரு அடுக்கைப் போலன்றி, வரிசை என்பது பொருள்களின் தொகுப்பாகும் முதல்-முதல்-முதல் (FIFO) கொள்கை. அதாவது, எந்த நேரத்திலும் உறுப்புகளைச் செருக முடியும், ஆனால் வரிசையில் நீண்ட காலமாக இருந்த உறுப்பை மட்டுமே எந்த நேரத்திலும் அகற்ற முடியும்.வரிசையின் பண்புகள் கீழே பட்டியலிடப்பட்டுள்ளன:

  • பெரும்பாலும் குறிப்பிடப்படுகிறது முதல்-முதல்-முதல்-அவுட் பட்டியல்
  • இரண்டு மிக அடிப்படை முறைகளை ஆதரிக்கிறது
    • enqueue (e): உறுப்பை e, இல் செருகவும் பின்புறம் வரிசையில்
    • dequeue (): இருந்து உறுப்பை அகற்றி திருப்பி விடுங்கள் முன் வரிசையில்

வரிசைகள் பயன்படுத்தப்படுகின்றனஇரண்டு செயல்முறைகளுக்கு இடையில் தரவின் ஒத்திசைவற்ற பரிமாற்றம், CPU திட்டமிடல், வட்டு திட்டமிடல் மற்றும் பல பயனர்களிடையே வளங்கள் பகிரப்பட்டு, முதலில் வந்த முதல் சேவையக அடிப்படையில் சேவை செய்யப்படும் பிற சூழ்நிலைகள். இந்த ‘ஜாவாவில் தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள்’ கட்டுரையில் அடுத்ததாக, எங்களிடம் படிநிலை தரவு கட்டமைப்புகள் உள்ளன.

ஜாவாவில் படிநிலை தரவு கட்டமைப்புகள்

பைனரி மரம்

பைனரி மரம் ஒருபடிநிலை மர தரவு கட்டமைப்புகள் ஒவ்வொரு கணுக்கும் அதிகபட்சம் இரண்டு குழந்தைகள் உள்ளனர் , அவை குறிப்பிடப்படுகின்றன இடது குழந்தை மற்றும் இந்த சரியான குழந்தை . ஒவ்வொரு பைனரி மரமும் பின்வரும் முனைகளின் குழுக்களைக் கொண்டுள்ளன:

  • ரூட் முனை: இது மிக உயர்ந்த முனை மற்றும் பெரும்பாலும் முக்கிய முனை என குறிப்பிடப்படுகிறதுஏனென்றால் மற்ற எல்லா முனைகளையும் ரூட்டிலிருந்து அடையலாம்
  • இடது துணை மரம், இது ஒரு பைனரி மரமாகும்
  • வலது துணை மரம், இது ஒரு பைனரி மரமாகும்

பைனரி மரத்தின் பண்புகள் கீழே பட்டியலிடப்பட்டுள்ளன:

  • ஒரு பைனரி மரத்தை இரண்டு வழிகளில் பயணிக்க முடியும்:
    • ஆழம் முதல் பயணம் : வரிசையில் (இடது-வேர்-வலது), முன்பதிவு (ரூட்-இடது-வலது) மற்றும் போஸ்டார்டர் (இடது-வலது-வேர்)
    • அகலம் முதல் பயணம் : நிலை ஒழுங்கு பயணம்
  • மரம் பயணத்தின் நேர சிக்கலானது: ஓ (என்)
  • ‘L’ = 2 அளவில் அதிகபட்ச முனைகளின் எண்ணிக்கைl-1.

பைனரி மரங்களின் பயன்பாடுகள் பின்வருமாறு:

  • தரவு தொடர்ந்து நுழையும் / வெளியேறும் பல தேடல் பயன்பாடுகளில் பயன்படுத்தப்படுகிறது
  • காட்சி விளைவுகளுக்கு டிஜிட்டல் படங்களை தொகுப்பதற்கான பணிப்பாய்வு
  • திசைவி-அட்டவணைகளை சேமிக்க ஒவ்வொரு உயர்-அலைவரிசை திசைவியிலும் பயன்படுத்தப்படுகிறது
  • வயர்லெஸ் நெட்வொர்க்கிங் மற்றும் நினைவக ஒதுக்கீட்டிலும் பயன்படுத்தப்படுகிறது
  • சுருக்க வழிமுறைகள் மற்றும் பலவற்றில் பயன்படுத்தப்படுகிறது

பைனரி குவியல்

பைனரி குவியல் ஒரு முழுமையானதுபைனரி மரம், இது குவியல் சொத்துக்கு பதிலளிக்கிறது. எளிமையான சொற்களில்பின்வரும் பண்புகளைக் கொண்ட பைனரி மரத்தின் மாறுபாடு:

  • குவியல் ஒரு முழுமையான பைனரி மரம்: ஒரு மரம் அதன் நிலைகள், ஆழமானவை தவிர, முழுமையடைந்தால் முழுமையானது என்று கூறப்படுகிறது. டிபைனரி ஹீப்பின் அவரது சொத்து ஒரு சேமிக்க ஏற்றது .
  • குவியல் சொத்தைப் பின்பற்றுகிறது: ஒரு பைனரி குவியல் ஒன்று குறைந்தபட்ச-குவியல் அல்லது ஒரு மேக்ஸ்-ஹீப் .
    • குறைந்தபட்ச பைனரி குவியல்: எஃப்அல்லது குவியலில் உள்ள ஒவ்வொரு முனையும், முனையின் மதிப்பு குறைவாக அல்லது சமமாக குழந்தைகளின் மதிப்புகள்
    • அதிகபட்ச பைனரி குவியல்: எஃப்அல்லது குவியலில் உள்ள ஒவ்வொரு முனையும், முனையின் மதிப்பு அதிகமாகவோ அல்லது சமமாகவோ குழந்தைகளின் மதிப்புகள்

பைனரி குவியலின் பிரபலமான பயன்பாடுகள் அடங்கும்திறமையான முன்னுரிமை-வரிசைகளை செயல்படுத்துதல், ஒரு வரிசையில் k சிறிய (அல்லது மிகப்பெரிய) கூறுகளை திறமையாகக் கண்டறிதல் மற்றும் பல.

ஓ ++ ஐ மீறுகிறது

ஹாஷ் அட்டவணைகள்

உங்களிடம் ஒன்று இருப்பதாக கற்பனை செய்து பாருங்கள் பொருள் தேடலை மிகவும் எளிதாக்குவதற்கு நீங்கள் அதற்கு ஒரு விசையை ஒதுக்க விரும்புகிறீர்கள். அந்த விசை / மதிப்பு ஜோடியை சேமிக்க, தரவு மதிப்புகளைப் போன்ற எளிய வரிசையை நீங்கள் பயன்படுத்தலாம், அங்கு தரவு மதிப்புகளைச் சேமிக்க விசைகள் (முழு எண்) நேரடியாக ஒரு குறியீடாகப் பயன்படுத்தலாம். இருப்பினும், விசைகள் மிகப் பெரியவை மற்றும் நேரடியாக ஒரு குறியீடாகப் பயன்படுத்த முடியாத சந்தர்ப்பங்களில், ஹாஷிங் எனப்படும் ஒரு நுட்பம் பயன்படுத்தப்படுகிறது.

ஹாஷிங்கில், பெரிய விசைகளைப் பயன்படுத்தி சிறிய விசைகளாக மாற்றப்படுகின்றன ஹாஷ் செயல்பாடுகள் . மதிப்புகள் பின்னர் ஒரு தரவு கட்டமைப்பில் சேமிக்கப்படும்க்கு ஹாஷ் அட்டவணை. ஒரு ஹாஷ் அட்டவணை என்பது ஒரு தரவு கட்டமைப்பாகும், இது ஒரு அகராதி ADT ஐ செயல்படுத்துகிறது, இது ஒரு கட்டமைப்பை மதிப்புகளுக்கு தனிப்பட்ட விசைகளை வரைபடமாக்குகிறது.

பொதுவாக, ஒரு ஹாஷ் அட்டவணையில் இரண்டு முக்கிய கூறுகள் உள்ளன:

  1. வாளி வரிசை: ஒரு ஹாஷ் அட்டவணைக்கான ஒரு வாளி வரிசை என்பது அளவு N இன் ஒரு வரிசை ஆகும், அங்கு A இன் ஒவ்வொரு கலமும் ஒரு “வாளி” என்று கருதப்படுகிறது, அதாவது முக்கிய மதிப்பு ஜோடிகளின் தொகுப்பு. முழு எண் N வரிசையின் திறனை வரையறுக்கிறது.
  2. ஹாஷ் செயல்பாடு: எங்கள் வரைபடத்தில் உள்ள ஒவ்வொரு விசை k ஐ [0, N & கழித்தல் 1] வரம்பில் உள்ள ஒரு முழு எண்ணாக வரைபடமாக்கும் எந்தவொரு செயல்பாடும் ஆகும், இங்கு N என்பது இந்த அட்டவணைக்கான வாளி வரிசையின் திறன்.

நாம் ஒரு ஹேஸ்டேபிளில் பொருட்களை வைக்கும்போது, ​​வெவ்வேறு பொருள்கள் ஒரே ஹேஷ்கோடைக் கொண்டிருக்கலாம். இது ஒரு என்று அழைக்கப்படுகிறது மோதல் . மோதலைச் சமாளிக்க, சங்கிலி மற்றும் திறந்த முகவரி போன்ற நுட்பங்கள் உள்ளன.

எனவே, இவை ஜாவாவில் சில அடிப்படை மற்றும் அடிக்கடி பயன்படுத்தப்படும் தரவு கட்டமைப்புகள். இப்போது இவை ஒவ்வொன்றையும் நீங்கள் அறிந்திருக்கிறீர்கள், அவற்றை உங்களிடமிருந்து செயல்படுத்தத் தொடங்கலாம் . இதன் மூலம், ‘இந்த‘ ஜாவாவில் தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள் ’கட்டுரையின் முதல் பகுதியை முடித்துள்ளோம். அடுத்த பகுதியில், நாம் அதைப் பற்றி அறியப் போகிறோம்அடிப்படை வழிமுறைகள் மற்றும் வரிசைப்படுத்தல் மற்றும் தேடல், பிரித்தல் மற்றும் வெற்றி, பேராசை வழிமுறைகள், டைனமிக் புரோகிராமிங் போன்ற நடைமுறை பயன்பாடுகளில் அவற்றை எவ்வாறு பயன்படுத்துவது.

ஜாவாவில் வழிமுறைகள்

வரலாற்று ரீதியாக சிக்கலான கணித கணக்கீடுகளைத் தீர்ப்பதற்கான ஒரு கருவியாகப் பயன்படுத்தப்படுகிறது, வழிமுறைகள் கணினி அறிவியலுடனும், குறிப்பாக தரவு கட்டமைப்புகளுடனும் ஆழமாக இணைக்கப்பட்டுள்ளன. ஒரு வழிமுறை ஒரு குறிப்பிட்ட கால இடைவெளியில் ஒரு குறிப்பிட்ட சிக்கலை தீர்க்கும் வழியை விவரிக்கும் வழிமுறைகளின் வரிசை. அவை இரண்டு வழிகளில் குறிப்பிடப்படுகின்றன:

  • பாய்வு விளக்கப்படங்கள் - அது ஒருஒரு வழிமுறையின் கட்டுப்பாட்டு ஓட்டத்தின் காட்சி பிரதிநிதித்துவம்
  • சூடோகுறியீடு - அதுஇறுதி மூலக் குறியீட்டை தோராயமாக மதிப்பிடும் ஒரு வழிமுறையின் உரை பிரதிநிதித்துவம் ஆகும்

குறிப்பு: வழிமுறையின் செயல்திறன் நேர சிக்கலானது மற்றும் விண்வெளி சிக்கலான தன்மையின் அடிப்படையில் அளவிடப்படுகிறது. பெரும்பாலும், எந்தவொரு வழிமுறையின் சிக்கலானது சிக்கலையும் வழிமுறையையும் சார்ந்துள்ளது.

ஜாவாவில் இரண்டு முக்கிய வகை வழிமுறைகளை ஆராய்வோம், அவை:

ஜாவாவில் வழிமுறைகளை வரிசைப்படுத்துதல்

வரிசையாக்க வழிமுறைகள் ஒரு பட்டியலின் கூறுகளை ஒரு குறிப்பிட்ட வரிசையில் வைக்கும் வழிமுறைகள். மிகவும் பொதுவாகப் பயன்படுத்தப்படும் ஆர்டர்கள் எண் வரிசை மற்றும் அகராதி வரிசை. இந்த ‘தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள்’ கட்டுரையில் சில வரிசையாக்க வழிமுறைகளை ஆராய உதவுகிறது.

ஜாவாவில் குமிழி வரிசை

குமிழ் வரிசைப்படுத்தல், பெரும்பாலும் மூழ்கும் வகை என குறிப்பிடப்படுகிறது, இது எளிமையான வரிசையாக்க வழிமுறை ஆகும். இது வரிசைப்படுத்தப்பட வேண்டிய பட்டியலில் மீண்டும் மீண்டும் அடியெடுத்து வைக்கிறது, ஒவ்வொரு ஜோடி அருகிலுள்ள உறுப்புகளையும் ஒப்பிட்டு, அவை தவறான வரிசையில் இருந்தால் அவற்றை மாற்றும்.குமிழி வரிசைக்கு அதன் பெயர் கிடைக்கிறது, ஏனெனில் அது தண்ணீரின் மீது மிதக்கும் குமிழ்கள் போன்ற வரிசையின் மேற்புறத்திற்கு உறுப்புகளை வடிகட்டுகிறது.

இங்கேகுமிழி வரிசை அல்காரிதம் (ஏறுவரிசை வகை சூழல்) குறிக்கும் சூடோகுறியீடு.

a [] என்பது N இன் தொடக்க வரிசை BubSSort (a []) முழு எண் i ஐ அறிவிக்கிறது, j க்கு i = 0 முதல் N - 1 வரை j = 0 முதல் N - i - 1 என்றால் ஒரு [j]> ஒரு [j + 1 ] பின்னர் ஒரு [j] ஐ மாற்றவும், ஒரு [j + 1] முடிவை ஒரு முடிவுக்கு திரும்பினால் பப்பில்சார்ட்

இந்த குறியீடு N தரவு உருப்படிகளின் ஒரு பரிமாண வரிசையை ஏறுவரிசையில் வரிசைப்படுத்துகிறது. ஒரு வெளிப்புற வளையமானது N-1 வரிசைக்கு மேலே செல்ல வைக்கிறது. ஒவ்வொரு பாஸும் தரவு உருப்படிகளை பரிமாறிக் கொள்ள உள் சுழற்சியைப் பயன்படுத்துகின்றன, அதாவது அடுத்த சிறிய தரவு உருப்படி “குமிழ்கள்” வரிசையின் தொடக்கத்தை நோக்கி. ஆனால் சிக்கல் என்னவென்றால், பட்டியல் வரிசைப்படுத்தப்பட்டிருப்பதை அறிய வழிமுறைக்கு எந்த இடமாற்றமும் இல்லாமல் ஒரு முழு பாஸ் தேவைப்படுகிறது.

மோசமான மற்றும் சராசரி வழக்கு நேர சிக்கலானது: O (n * n). ஒரு வரிசை தலைகீழ் வரிசைப்படுத்தப்படும்போது மிக மோசமான நிலை ஏற்படுகிறது.

சிறந்த வழக்கு நேர சிக்கலானது: ஓ (ந). ஒரு வரிசை ஏற்கனவே வரிசைப்படுத்தப்பட்டால் சிறந்த நிகழ்வு ஏற்படுகிறது.

ஜாவாவில் தேர்வு வரிசை

தேர்வு வரிசையாக்கம் என்பது தேடல் மற்றும் வரிசைப்படுத்துதல் ஆகிய இரண்டின் கலவையாகும். வரிசைப்படுத்தப்படாத பகுதியிலிருந்து குறைந்தபட்ச உறுப்பை (ஏறுவரிசையை கருத்தில் கொண்டு) மீண்டும் மீண்டும் கண்டுபிடித்து அதை வரிசையில் சரியான நிலையில் வைப்பதன் மூலம் வழிமுறை ஒரு வரிசையை வரிசைப்படுத்துகிறது.

தேர்வு வரிசை அல்காரிதம் (ஏறுவரிசை வகை சூழல்) குறிக்கும் சூடோகுறிப்பு இங்கே.

a [] என்பது N = 0 முதல் n - 1 / * வரையிலான தேர்வுத் வரிசை (a []) ஒரு வரிசை ஆகும், தற்போதைய உறுப்பை குறைந்தபட்சமாக அமைக்கவும் * / min = i / * குறைந்தபட்ச உறுப்பைக் கண்டறியவும் * / j = i + 1 to n என்றால் பட்டியல் [j]

குறியீட்டிலிருந்து நீங்கள் புரிந்து கொள்ளக்கூடியபடி, வரிசை வழியாக வரிசை எத்தனை முறை கடந்து செல்கிறது என்பது வரிசையில் உள்ள உருப்படிகளின் எண்ணிக்கையை விட ஒன்றாகும். உள் வளையமானது அடுத்த சிறிய மதிப்பைக் காண்கிறது மற்றும் வெளிப்புற வளையத்தை அதன் சரியான இடத்திற்கு மதிப்பிடுகிறது. தேர்வு வரிசை ஒருபோதும் O (n) இடமாற்றங்களை விட அதிகமாக செய்யாது, மேலும் நினைவக எழுதுதல் ஒரு விலையுயர்ந்த செயல்பாடாக இருக்கும்போது பயனுள்ளதாக இருக்கும்.

நேர சிக்கலானது: ஓ (என்2) இரண்டு உள்ளமைக்கப்பட்ட சுழல்கள் இருப்பதால்.

துணை இடம்: அல்லது (1).

ஜாவாவில் செருகும் வரிசை

செருகும் வரிசையாக்கம் என்பது ஒரு எளிய வரிசையாக்க வழிமுறையாகும், இது ஒரு நேரத்தில் ஒரு உள்ளீட்டு உறுப்பை உட்கொள்வதன் மூலம் பட்டியலை மீண்டும் கூறுகிறது மற்றும் இறுதி வரிசைப்படுத்தப்பட்ட வரிசையை உருவாக்குகிறது. சிறிய தரவுத் தொகுப்புகளில் இது மிகவும் எளிமையானது மற்றும் மிகவும் பயனுள்ளதாக இருக்கும். இது நிலையான மற்றும் இடத்தில் வரிசைப்படுத்தும் நுட்பமாகும்.

செருகும் வரிசை அல்காரிதம் (ஏறுவரிசை சூழல்) குறிக்கும் சூடோகுறிப்பு இங்கே.

a [] என்பது N = 1 முதல் N விசை = a [i] j = i - 1 க்கு (j> = 0 மற்றும் ஒரு [j]> key0 a [j + 1] = x [j] j = j - 1 முடிவு, ஒரு [j + 1] = முடிவுக்கான முக்கிய முடிவு செருகும் வகை

குறியீட்டிலிருந்து நீங்கள் புரிந்து கொள்ளக்கூடியபடி, செருகும் வரிசை வழிமுறைஉள்ளீட்டுத் தரவிலிருந்து ஒரு உறுப்பை அகற்றி, வரிசைப்படுத்தப்பட்ட பட்டியலில் அது இருக்கும் இடத்தைக் கண்டுபிடித்து அதை அங்கு செருகும். உள்ளீட்டு கூறுகள் எதுவும் வரிசைப்படுத்தப்படாத வரை இது மீண்டும் நிகழ்கிறது.

சிறந்த வழக்கு: உள்ளீடு என்பது ஏற்கனவே வரிசைப்படுத்தப்பட்ட ஒரு வரிசையாக இருக்கும்போது சிறந்த நிகழ்வு. இந்த வழக்கில் செருகும் வரிசை ஒரு நேரியல் இயங்கும் நேரத்தைக் கொண்டுள்ளது (அதாவது, & தீட்டா (n)).

மிக மோசமான நிலையில்: மிக மோசமான மோசமான உள்ளீடு தலைகீழ் வரிசையில் வரிசைப்படுத்தப்பட்ட ஒரு வரிசை ஆகும்.

ஜாவாவில் குவிக்சோர்ட்

குவிக்சோர்ட் வழிமுறை என்பது வேகமான, சுழல்நிலை, நிலையான அல்லாத வரிசைமுறை வழிமுறையாகும், இது பிளவு மற்றும் வெற்றிக் கொள்கையால் செயல்படுகிறது. இது ஒரு உறுப்பை மையமாகத் தேர்ந்தெடுத்து, தேர்ந்தெடுக்கப்பட்ட முன்னிலை சுற்றி கொடுக்கப்பட்ட வரிசையை பகிர்வு செய்கிறது.

விரைவான வரிசையைச் செயல்படுத்த படிகள்:

  1. பொருத்தமான “பிவோட் பாயிண்ட்” ஐத் தேர்ந்தெடுக்கவும்.
  2. பட்டியல்களை இரண்டு பட்டியல்களாக பிரிக்கவும்இந்த மைய உறுப்பு அடிப்படையில். பிவோட் உறுப்பை விட சிறியதாக இருக்கும் ஒவ்வொரு உறுப்புகளும் இடது பட்டியலில் வைக்கப்படுகின்றன, மேலும் பெரியதாக இருக்கும் ஒவ்வொரு உறுப்புகளும் சரியான பட்டியலில் வைக்கப்படுகின்றன. ஒரு உறுப்பு பிவோட் உறுப்புக்கு சமமாக இருந்தால், அது எந்த பட்டியலிலும் செல்லலாம். இது பகிர்வு செயல்பாடு என்று அழைக்கப்படுகிறது.
  3. ஒவ்வொரு சிறிய பட்டியல்களையும் மீண்டும் மீண்டும் வரிசைப்படுத்தவும்.

குவிக்சோர்ட் அல்காரிதத்தை குறிக்கும் சூடோகுறிப்பு இங்கே.

குவிக்சார்ட் (ஒரு வரிசையாக, குறைந்த எண்ணாக, முழு எண்ணாக) {if (குறைந்த

மேலே உள்ள சூடோகுறியீட்டில், பகிர்வு () செயல்பாடு பகிர்வு செயல்பாட்டை செய்கிறது மற்றும் குவிக்சோர்ட் () உருவாக்கப்பட்ட ஒவ்வொரு சிறிய பட்டியலுக்கும் பகிர்வு செயல்பாட்டை செயல்பாடு மீண்டும் மீண்டும் அழைக்கிறது. சராசரி வழக்கில் புதைமணலின் சிக்கலானது & தீட்டா (n பதிவு (n)) மற்றும் மோசமான நிலையில் & தீட்டா (n2) ஆகும்.

ஜாவாவில் வரிசைப்படுத்துங்கள்

ஒன்றிணைப்பு என்பது வேகமான, சுழல்நிலை, நிலையான வரிசை வழிமுறை ஆகும், இது பிளவு மற்றும் வெற்றிக் கொள்கையால் செயல்படுகிறது. குவிக்சோர்ட்டைப் போலவே, ஒன்றிணைத்தல் வரிசையும் உறுப்புகளின் பட்டியலை இரண்டு பட்டியல்களாகப் பிரிக்கிறது. இந்த பட்டியல்கள் சுயாதீனமாக வரிசைப்படுத்தப்பட்டு பின்னர் இணைக்கப்படுகின்றன. பட்டியல்களின் சேர்க்கையின் போது, ​​கூறுகள் பட்டியலில் சரியான இடத்தில் செருகப்படுகின்றன (அல்லது இணைக்கப்படுகின்றன).

ஒன்றிணைத்தல் வரிசை அல்காரிதத்தை குறிக்கும் சூடோகுறிப்பு இங்கே.

செயல்முறை ஒன்றிணைப்பு (ஒரு வரிசையாக) (n == 1) ஒரு var l1 ஐ வரிசை = a [0] எனக் கொடுத்தால் ... a [n / 2] var l2 என வரிசை = a [n / 2 + 1] ... a [n] l1 = mergesort (l1) l2 = mergesort (l2) return merge (l1, l2) இறுதி நடைமுறை நடைமுறை ஒன்றிணைப்பு (a வரிசையாக, b வரிசையாக) var c வரிசையாக இருக்கும்போது (a மற்றும் b உறுப்புகள் உள்ளன) என்றால் ( a [0]> b [0]) c இன் முடிவில் b [0] ஐ சேர்க்கவும் b இலிருந்து 0 [0] ஐ நீக்கவும், இல்லையெனில் c இன் முடிவில் ஒரு [0] ஐ சேர்க்கவும் c இன் முடிவில் ஒரு [0] ஐ நீக்குங்கள் (a உறுப்புகள் உள்ளன) c இன் முடிவில் ஒரு [0] ஐ சேர்க்கவும், ஒரு முடிவில் இருந்து ஒரு [0] ஐ நீக்கவும் (b உறுப்புகள் உள்ளன) c இன் முடிவில் b [0] ஐ சேர்க்கவும் c திரும்பும்போது b முடிவில் இருந்து b [0] ஐ நீக்கவும் c முடிவு செயல்முறை

ஒன்றிணைத்தல் () செயல்பாடு பட்டியலை இரண்டாக, அழைப்புகளாக பிரிக்கிறது ஒன்றிணைத்தல் () இந்த பட்டியல்களில் தனித்தனியாக, பின்னர் அவற்றை ஒன்றிணைக்க () செயல்பாட்டிற்கான அளவுருக்களாக அனுப்புவதன் மூலம் அவற்றை இணைக்கிறது.வழிமுறை O (n log (n)) இன் சிக்கலைக் கொண்டுள்ளது மற்றும் பரந்த அளவிலான பயன்பாடுகளைக் கொண்டுள்ளது.

ஜாவாவில் குவியல் வரிசை

ஹீப்ஸோர்ட் ஒரு ஒப்பீட்டு அடிப்படையிலான வரிசையாக்க வழிமுறை ஆகும்பைனரி குவியல் தரவு அமைப்பு. மேம்பட்ட பதிப்பு எஃப் தேர்வு வரிசையாக நீங்கள் நினைக்கலாம், எங்கேஇது அதன் உள்ளீட்டை ஒரு வரிசைப்படுத்தப்பட்ட மற்றும் வரிசைப்படுத்தப்படாத பிராந்தியமாகப் பிரிக்கிறது, மேலும் இது மிகப்பெரிய உறுப்பை பிரித்தெடுத்து வரிசைப்படுத்தப்பட்ட பகுதிக்கு நகர்த்துவதன் மூலம் வரிசைப்படுத்தப்படாத பகுதியை மீண்டும் சுருங்குகிறது.

குவிக்சார்ட்டை செயல்படுத்துவதற்கான படிகள் (அதிகரிக்கும் வரிசையில்):

  1. வரிசையாக்க வரிசையுடன் அதிகபட்ச குவியலை உருவாக்குங்கள்
  2. இந்த புள்ளியில்t, மிகப்பெரிய பொருள் குவியலின் வேரில் சேமிக்கப்படுகிறது. குவியலின் கடைசி உருப்படியுடன் அதை மாற்றி, குவியலின் அளவை 1 ஆகக் குறைக்கவும். இறுதியாக, மரத்தின் வேரைக் குவிக்கவும்
  3. குவியலின் அளவு 1 ஐ விட அதிகமாக இருக்கும் வரை மேலே உள்ள படிகளை மீண்டும் செய்யவும்

குவியல் வரிசை அல்காரிதத்தை குறிக்கும் சூடோகுறியியல் இங்கே.

(I = n / 2 - 1) to i> = 0 heapify (a, n, i) i = n-1 முதல் 0 swap (a [0], a [i]) heapify க்கான Heapsort (a as array) (a, i, 0) heapify க்கான முடிவுக்கான முடிவு (a வரிசையாக, n என எண்ணாக, i எண்ணாக) மிகப்பெரிய = i // மிகப்பெரியதாக ரூட் int l eft = 2 * i + 1 // left = 2 * i + 1 int right = 2 * i + 2 // right = 2 * i + 2 if (ஒரு [மிகப்பெரிய] இடது) மிகப்பெரிய = இடது என்றால் (வலது ஒரு [மிகப்பெரிய]) மிகப்பெரிய = வலது என்றால் (மிகப்பெரியது! = I) இடமாற்று ( a [i], A [மிகப்பெரிய]) Heapify (a, n, மிகப்பெரிய) end heapify

இவற்றைத் தவிர, இன்ட்ரோசார்ட், எண்ணும் வரிசைப்படுத்தல் போன்ற நன்கு அறியப்படாத பிற வரிசையாக்க வழிமுறைகள் உள்ளன. இந்த ‘தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள்’ கட்டுரையில் அடுத்த வழிமுறைகளுக்குச் செல்லும்போது, ​​தேடல் வழிமுறைகளை ஆராய்வோம்.

ஜாவாவில் வழிமுறைகளைத் தேடுகிறது

வழக்கமான வணிக பயன்பாடுகளில் மிகவும் பொதுவான மற்றும் அடிக்கடி நிகழ்த்தப்படும் செயல்களில் ஒன்றாகும். தேடல் வழிமுறைகள் என்பது பொருட்களின் தொகுப்பில் குறிப்பிட்ட பண்புகளைக் கொண்ட ஒரு பொருளைக் கண்டுபிடிப்பதற்கான வழிமுறைகள். பொதுவாகப் பயன்படுத்தப்படும் இரண்டு தேடல் வழிமுறைகளை ஆராய்வோம்.

ஜாவாவில் நேரியல் தேடல் வழிமுறை

நேரியல் தேடல் அல்லது தொடர்ச்சியான தேடல் என்பது எளிய தேடல் வழிமுறை. உறுப்பு கண்டுபிடிக்கப்பட்ட வரை அல்லது கட்டமைப்பின் முடிவை அடையும் வரை கொடுக்கப்பட்ட தரவு கட்டமைப்பில் ஒரு உறுப்புக்கான தொடர்ச்சியான தேடலை இது உள்ளடக்குகிறது. உறுப்பு கண்டுபிடிக்கப்பட்டால், உருப்படியின் இருப்பிடம் திரும்பப் பெறப்படும், இல்லையெனில் வழிமுறை NULL ஐ வழங்குகிறது.

ஜாவாவில் நேரியல் தேடலைக் குறிக்கும் சூடோகுறிப்பு இங்கே:

செயல்முறை நேரியல்_ தேடல் (ஒரு [], மதிப்பு) i = 0 முதல் n-1 வரை இருந்தால் [i] = மதிப்பு என்றால் அச்சிடப்பட்டால் 'கிடைத்தது' திரும்பவும் அச்சிடு என்றால் முடிவடையும் நேரியல்_ தேடலுக்கான முடிவு 'கிடைக்கவில்லை'

அது ஒருமுரட்டு-சக்தி வழிமுறை.இது நிச்சயமாக எளிமையானது என்றாலும், அதன் திறமையின்மை காரணமாக இது மிகவும் பொதுவானதல்ல. நேரியல் தேடலின் நேரம் சிக்கலானது ஓ (என்) .

ஜாவாவில் பைனரி தேடல் வழிமுறை

பைனரி தேடல், மடக்கைத் தேடல் என்றும் அழைக்கப்படுகிறது, இது ஒரு தேடல் வழிமுறையாகும், இது ஏற்கனவே வரிசைப்படுத்தப்பட்ட வரிசையில் இலக்கு மதிப்பின் நிலையைக் கண்டுபிடிக்கும். இது உள்ளீட்டு சேகரிப்பை சம பகுதிகளாக பிரிக்கிறது மற்றும் உருப்படி பட்டியலின் நடுத்தர உறுப்புடன் ஒப்பிடப்படுகிறது. உறுப்பு கண்டுபிடிக்கப்பட்டால், தேடல் அங்கு முடிகிறது. இல்லையெனில், இலக்கு உறுப்பு நடுத்தர உறுப்பை விட சிறியதாகவோ அல்லது பெரியதாகவோ இருந்தால் அதன் அடிப்படையில், வரிசையின் பொருத்தமான பகிர்வை பிரித்து தேர்ந்தெடுப்பதன் மூலம் உறுப்பைத் தேடுகிறோம்.

ஜாவாவில் பைனரி தேடலைக் குறிக்கும் சூடோகுறியியல் இங்கே:

செய்முறை பைனரி_ தேட ஒரு வரிசை வரிசை வரிசை x மதிப்பின் அளவு தேடப்பட வேண்டும் லோவர் பவுண்ட் = 1 மேல்பவுண்ட் = என், மேல் x என்றால் x கிடைக்கவில்லை

மேல்பகுதி (எங்கள் சுட்டிக்காட்டி) லோவர் பவுண்ட் (கடைசி உறுப்பு) ஐ கடந்தால் தேடல் முடிவடைகிறது, இது முழு வரிசையையும் நாங்கள் தேடினோம், உறுப்பு இல்லை என்பதைக் குறிக்கிறது.இது விரைவான தேடல் நேரத்தின் காரணமாக முதன்மையாகப் பயன்படுத்தப்படும் தேடல் வழிமுறைகள் ஆகும். பைனரி தேடலின் நேர சிக்கலானது ஓ (என்) இது ஒரு குறிப்பிடத்தக்க முன்னேற்றம் ஓ (என்) நேரியல் தேடலின் நேர சிக்கலானது.

google தரவு விஞ்ஞானி நேர்காணல் கேள்விகள்

இந்த ‘ஜாவாவில் உள்ள தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள்’ கட்டுரையின் முடிவுக்கு இது நம்மை அழைத்துச் செல்கிறது. ஜாவாவின் மிக அடிப்படையான மற்றும் முக்கியமான தலைப்புகளில் ஒன்றை நான் உள்ளடக்கியுள்ளேன்.இந்த கட்டுரையில் உங்களுடன் பகிரப்பட்ட எல்லாவற்றிலும் நீங்கள் தெளிவாக இருப்பீர்கள் என்று நம்புகிறேன்.

முடிந்தவரை பயிற்சி செய்து உங்கள் அனுபவத்தை மாற்றியமைக்கவும்.

பாருங்கள் உலகெங்கிலும் பரவியுள்ள 250,000 க்கும் மேற்பட்ட திருப்தியான கற்றவர்களின் வலைப்பின்னலுடன் நம்பகமான ஆன்லைன் கற்றல் நிறுவனமான எடுரேகாவால். உங்கள் பயணத்தின் ஒவ்வொரு அடியிலும் உங்களுக்கு உதவ நாங்கள் இங்கு வந்துள்ளோம், இந்த ஜாவா நேர்காணல் கேள்விகளைத் தவிர்த்து, ஜாவா டெவலப்பராக விரும்பும் மாணவர்கள் மற்றும் நிபுணர்களுக்காக வடிவமைக்கப்பட்ட ஒரு பாடத்திட்டத்தை நாங்கள் கொண்டு வருகிறோம்.

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? இந்த ‘ஜாவாவில் தரவு கட்டமைப்புகள் மற்றும் வழிமுறைகள்’ இன் கருத்துகள் பிரிவில் குறிப்பிடவும் கட்டுரை மற்றும் விரைவில் நாங்கள் உங்களைத் தொடர்புகொள்வோம்.