আমি এমনকি সিএসের ছাত্রও নই, সুতরাং এটি মূ question় প্রশ্ন হতে পারে তবে দয়া করে আমার সাথে সহ্য করুন ...
প্রাক-কম্পিউটার যুগে আমরা কেবল একটি ড্রয়ারের অ্যারের মতো কিছু দিয়ে একটি অ্যারে ডেটা স্ট্রাকচার প্রয়োগ করতে পারি। এক এটি থেকে মান আহরণের আগে সংশ্লিষ্ট সূচকের সাথে ড্রয়ারের খোজা যেহেতু, এরে লুকআপ সময় জটিলতা হয় , বাইনারি অনুসন্ধান অভিমানী।
যাইহোক, কম্পিউটার আবিষ্কার একটি বড় পার্থক্য তৈরি। আধুনিক কম্পিউটারগুলি তাদের র্যাম থেকে এত তাড়াতাড়ি পড়তে পারে যে এখন আমরা অ্যারে দেখার সময় জটিলতাটিকে (এটি প্রযুক্তিগতভাবে ক্ষেত্রেও হয় না, কারণ নিবন্ধটিকে আরও বেশি দূরত্বে স্থানান্তর করতে আরও বেশি সময় লাগে ইত্যাদি)
আর একটি উদাহরণ পাইথন অভিধান। একটি লিখিত ওভারলোডেড যাদু পদ্ধতি (বা হাস্যকরভাবে দুর্ভাগ্য, অর্থাত্ প্রচুর হ্যাশের সংঘর্ষযুক্ত কীগুলি ) দিয়ে এর অভিধান অ্যাক্সেস জটিলতা পেতে পারে , সাধারণত এটি O ( 1 ) বলে মনে করা হয় । এই ক্ষেত্রে, সময়ের জটিলতা পাইথন অভিধানের হ্যাশ টেবিল প্রয়োগকরণ এবং হ্যাশ ফাংশনগুলির কীগুলির বাস্তবায়নের উভয়ের উপর নির্ভর করে।__hash__
এটি কি বোঝায় যে হার্ডওয়্যার / প্রয়োগকরণ অ্যালগরিদমের সময় জটিলতায় প্রভাব ফেলতে পারে? (যদিও উভয় উদাহরণই অ্যালগরিদমের পরিবর্তে ডেটা স্ট্রাকচার সম্পর্কিত, তবে পূর্ববর্তীগুলি পূর্বের উপর নির্মিত হয়েছে, এবং আমি ডেটা স্ট্রাকচারের সময়ের জটিলতার কথা কখনও শুনিনি, তাই আমি এখানে "অ্যালগরিদম" শব্দটি ব্যবহার করছি)
আমার কাছে, অ্যালগরিদমগুলি বিমূর্ত এবং ধারণাগত, যার সময় / স্থান জটিলতার মতো বৈশিষ্ট্যগুলি নির্দিষ্ট উপায়ে প্রয়োগ করা হচ্ছে কিনা তা দ্বারা প্রভাবিত হওয়া উচিত নয়, তবে তারা কি?