এভিএল ট্রি এবং রিয়েল ওয়ার্ল্ড


14

স্কুলে আমাদের শেখানো হয় যে কীভাবে আমরা একটি সন্নিবেশ বা মুছার সাথে একটি এভিএল গাছের ভারসাম্য বজায় রাখতে পারি।

এই ধরণের জ্ঞান আসলে বাস্তব বিশ্বে কীভাবে কার্যকর হতে চলেছে? এই ধরণের জ্ঞান আসলে কখন কার্যকর হবে সে সম্পর্কে কেউ উদাহরণ দিতে পারেন?

যা আমি দেখেছি, কর্মক্ষেত্রে এ জাতীয় বিবরণ খুব কমই সামনে আসে ...

আমি দেখতে পারি যে অ্যালগরিদমগুলি এবং কিছু ডেটা স্ট্রাকচার সম্পর্কে বিশদ জ্ঞান কীভাবে গুরুত্বপূর্ণ হতে পারে তবে এভিএল গাছের আবর্তন (এবং অনুরূপ বিস্তারিত ধারণা) এর মতো বিশদ নয়।

ধন্যবাদ!


7
এটি সাক্ষাত্কারে সহায়ক, যদি তা বাস্তব জগত হিসাবে গণনা করা হয়।
কেভিন

এটি একই যুক্তি যা কিছু লোক স্কুলে ত্রিকোণমিতি শেখার বিষয়ে তৈরি করে "শীশ! আমি কখনই বাস্তব জীবনে তা ব্যবহার করতে যাব?", এবং উত্তরটি "এটি আপনাকে ভেবেছিল কীভাবে বিশ্লেষণ এবং সমস্যার পুরো ক্লাসটি সমাধান করবেন" । সে এবং কোনও দিন আপনি একটি গাছ কেটে ফেলতে চান এবং আপনার সঙ্গী জিজ্ঞাসা করে "আপনি কি নিশ্চিত যে এটি বাড়িতে আঘাত করবে না?" উদ্ধার করতে ট্রিগার!
বাইনারি ওয়ারিয়ার

উত্তর:


13

নিম্নলিখিত কারণগুলির জন্য এভিএল গাছ অধ্যয়ন সহায়ক হতে পারে:

  • বিমূর্ত ডেটা সম্পর্কে যুক্তির জন্য এটি দুর্দান্ত অনুশীলন। আপনাকে একটি নির্দিষ্ট গাছ সম্পর্কে চিন্তা করতে হবে না, আপনাকে প্রতিটি সম্ভাবনা বিবেচনা করতে হবে। এই ধরণের যুক্তি দিয়ে অনুশীলন করা সহজ ক্ষেত্রেগুলিতেও সহায়তা করতে পারে।

  • ভবিষ্যদ্বাণীগুলি এবং চুক্তিগুলি বোঝার জন্য এটি দুর্দান্ত অনুশীলন। একটি গাছ সুষম হয় তা নিশ্চিত করা এবং আপনি প্রতিটি অপারেশন সংরক্ষিত ভারসাম্য প্রমাণ করার জন্য যে সরঞ্জামগুলি ব্যবহার করেন সেগুলি সুরক্ষা উদ্বেগ এবং সমান্তরাল কোডে প্রয়োগ করা যেতে পারে।

  • এটি আপনাকে আপনার নিজস্ব বৈকল্পিকগুলি লিখতে বা সম্পূর্ণ নতুন ধরণের ডেটা স্ট্রাকচার তৈরি করার ক্ষমতা দেয়।

  • নতুন লাইব্রেরি বা প্ল্যাটফর্মের জন্য আপনাকে কেবল একটি এভিএল ট্রি প্রয়োগ করতে হবে।

আপনি প্রতিটি ধরণের বাছাই করা অ্যালগরিদম বা প্রতিটি ধরণের সুষম গাছ শেখার বিশেষ যোগ্যতার বিষয়ে বিতর্ক করতে পারেন। এটা সত্যিই কোন ব্যাপার না যা আপনি যেগুলি শেখার শেষ, কিন্তু আপনি নিশ্চিত সবচেয়ে গুরুত্বপূর্ণ বিষয় সম্পূর্ণ কভারেজ পেতে হবে।

আপনি যদি সত্যিকারের বিশ্বে জেনে থাকা অ্যালগরিদমগুলি কতটা গুরুত্বপূর্ণ তা দেখতে চান, " ফ্রেন্ডস্টারের পতন সম্পর্কে ইনক এর একটি নিবন্ধ " কীভাবে পড়ুন এবং দক্ষতা বৃদ্ধির জন্য মৌলিক নীতির সামান্যতম প্রয়োগ কীভাবে তাদের সহায়তা করতে পারে।


আকর্ষণীয় নিবন্ধ, তবে আমি দেখতে পাচ্ছি না কীভাবে এভিএল গাছগুলি বন্ধুবান্ধবকে সহায়তা করেছিল।
ইরোটোথিনিস

আমি উদাহরণ দেখতে পছন্দ করতাম, যেমন বি +-ট্রিগুলি ডাটাবেস সূচীকরণের জন্য ব্যবহৃত হয়।
লুকা ফেলবিয়ার

5

ম্যাকনিলস পয়েন্ট ছাড়াও ...

লাল-কালো গাছগুলি সম্ভবত আরও সরাসরি কার্যকর কারণ কার্যকর দক্ষ ক্রিয়াকলাপগুলি রয়েছে যা স্ট্যান্ডার্ড লাইব্রেরি বাস্তবায়িত যেমন সি ++ std::map(কমপক্ষে এএফএইসি) তে সমর্থ নয় । লাল-কালো গাছগুলি "বিভক্ত" (একটি গাছকে দুটি কেটে কাটানো, একটিতে একটি নির্দিষ্ট কী-এর চেয়ে কম কী যুক্ত করে এবং একটিতে কীগুলি বেশি থাকে) এবং "যোগদান" (বিপরীত, ছোট গাছের সাথে বড় চাবি গাছের সংমিশ্রণকে সমর্থন করে) কী) উভয়ই ও (লগ এন) সময়ে করা যেতে পারে, তবে এগুলি যদি স্ট্যান্ডার্ড কনটেইনার লাইব্রেরিতে সমর্থিত হয় তবে এটি একটি গোপন বিষয় হিসাবে মনে হয়।

তবে ডেটা স্ট্রাকচার "বর্ধনশীল" সাধারণ। একটি সহজ উদাহরণ ও (লগ এন) সাবস্ক্রিপশন সমর্থন করার জন্য প্রায় কোনও গাছের ডেটা কাঠামোর নোডগুলিতে নোডগুলিতে আকার-সাবট্রি তথ্য যুক্ত করা হচ্ছে। আরও পরিশীলিত উদাহরণ অন্তর্ভুক্ত গাছ অন্তর্ভুক্ত।

একবার আপনি ডেটা স্ট্রাকচার বৃদ্ধির ধারণাটি পেয়ে গেলে, বিভিন্ন অ্যাপ্লিকেশনগুলির জন্য কার্যকর হতে পারে এমন অনেকগুলি বৈচিত্র রয়েছে - এবং খুব কম লাইব্রেরি হিসাবে প্রাক-প্যাকেজযুক্ত উপলব্ধ। বিদ্যমান স্ট্যান্ডার্ড-লাইব্রেরি ডেটা স্ট্রাকচার (যেমন std::map:) উত্স কোডটি অনুলিপি করে সরাসরি এটিকে সংশোধন করার পক্ষে সংযোজন করা যায় না - আপনি টেমপ্লেট পরামিতিগুলি ব্যবহার করে এগুলিকে বাড়িয়ে তুলতে পারবেন না।

অবশ্যই একটি বর্ধিত ডেটা কাঠামো বিকাশ করার জন্য আপনাকে অন্তর্নিহিত অ-বৃদ্ধিত ডেটা কাঠামোটি বুঝতে হবে।

সন্নিবেশ / মুছে ফেলার চেয়েও যদি আপনি আরও অনেক বেশি অনুসন্ধান করেন তবে এভিএল গাছগুলি লাল-কালো গাছের চেয়ে দ্রুততর হতে পারে (এবং আপনি যদি বিভক্ত / সংযুক্ত অপারেশনগুলির প্রয়োজন না হন) তবে আবেদনের উপর নির্ভর করে এগুলি খুব ভাল বেস হতে পারে উদ্দীপক।


1
ডেটা কাঠামো বাড়ানোর জন্য +1, যদিও এটি করা খুব বিরল জিনিস। বেশিরভাগ প্রোগ্রামারদের পারফরম্যান্সের জন্য প্রচেষ্টা করতে হবে না (অন্যথায় আমরা সবাই সি ++ / সি / ফোর্টরান / এসেম্বলি ব্যবহার করব)।
ম্যাথিউ এম।

@ ম্যাথিউ - আমি বিশ্বাস করি এটি সাধারণ, তবে কেবলমাত্র নির্দিষ্ট ধরণের বিকাশের পরিবেশে। এটি কোনও দ্বন্দ্ব নয়, সত্য, কারণ ... ভুল, ভাল ...
স্টিভ 314

আমি পুরোপুরি একমত! : ডি
ম্যাথিউ এম।

5

না

সত্যিকারের বিশ্বে এটি সত্যিই কার্যকর নয় ...

ছাড়া আপনি কি মনে করেন করতে

বাস্তব জগতে হয়েছে অনেক কঠিন সমস্যার , যার অনেকগুলোই না ইতিমধ্যে সুপরিচিত সমাধান আছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.