সরাসরি প্রধান সামগ্রীতে চলে যান

বাস্তব জীবনে ডাটা সর্টিং বা সাজানোর প্রয়োগ

Introduction

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


ডাটা সর্টিং কেন প্রয়োজন?

বাস্তব জীবনে আমরা যখন কোনো অ্যাপ্লিকেশন বা সফটওয়্যার তৈরি করি, তখন আমাদের অনেক বড় ডাটাবেজ নিয়ে কাজ করতে হয়। যদি ডাটাগুলো অগোছালো থাকে, তবে সেখান থেকে নির্দিষ্ট কিছু খুঁজে বের করা অনেক সময়সাপেক্ষ।

ভিডিও রেফারেন্স: [04:51:25]

বিস্তারিত আলোচনা: মনে করুন আপনার কাছে ১ লক্ষ মানুষের নামের একটি লিস্ট আছে। এখন আপনাকে সেখান থেকে 'Aaron' নামটি খুঁজে বের করতে হবে। যদি লিস্টটি সাজানো না থাকে (Unsorted), তবে আপনাকে প্রথম থেকে শেষ পর্যন্ত একটি একটি করে নাম চেক করতে হবে। একে বলা হয় Linear Search। কিন্তু যদি লিস্টটি বর্ণানুক্রমে (Alphabetically) সাজানো থাকে, তবে আপনি খুব সহজেই মাঝখান থেকে খোঁজা শুরু করে দ্রুত নামটি পেয়ে যাবেন। একে বলা হয় Binary Search

  • সহজ ব্যাখ্যা (Linear Search): লাইনে দাঁড়িয়ে থাকা ১০০ জন মানুষের মধ্যে থেকে একজনকে খোঁজা, যেখানে আপনি প্রথম জন থেকে শুরু করে শেষ জন পর্যন্ত সবাইকে দেখছেন।

  • সহজ ব্যাখ্যা (Binary Search): একটি ডিকশনারিতে শব্দ খোঁজার মতো। আপনি জানেন 'B' দিয়ে শুরু হওয়া শব্দগুলো 'A' এর পরে থাকবে, তাই আপনি সরাসরি মাঝখানে চলে যান।


প্র্যাকটিক্যাল কোডিং: নাম খোঁজার উদাহরণ

ভিডিওর এই অংশে পাইথন কোড ব্যবহার করে দেখানো হয়েছে কীভাবে একটি টেক্সট ফাইল থেকে নামগুলো নিয়ে সেগুলোকে সর্ট করা হয় এবং তারপর সেগুলোর ওপর সার্চ চালানো হয়।

ভিডিও রেফারেন্স: [04:55:10]

কোড উদাহরণ ও ব্যাখ্যা: নিচে একটি সহজ উদাহরণ দেওয়া হলো যা ভিডিওর আলোচনার সাথে মিল রাখে:

Python

# একটি অগোছালো নামের লিস্ট
names = ["Zayan", "Aaron", "Brity", "John", "Steve"]

# লিস্টটিকে সর্ট বা সাজানো (Alphabetical Order)
sorted_names = sorted(names)
print("Sorted List:", sorted_names)

# ফলাফল আসবে: ['Aaron', 'Brity', 'John', 'Steve', 'Zayan']

# এখন আমরা খুব সহজে এবং দ্রুত 'Binary Search' ব্যবহার করতে পারব 

কোডটি কী করছে? ১. প্রথমে কিছু অগোছালো নাম নেওয়া হয়েছে। ২. sorted() ফাংশন ব্যবহার করে নামগুলোকে 'A' থেকে 'Z' ক্রমে সাজানো হয়েছে। ৩. যখন ডাটা সাজানো থাকে, তখন কম্পিউটার খুব দ্রুত বড় বড় লিস্ট প্রসেস করতে পারে।


পারফরম্যান্স তুলনা: Linear vs Binary Search

ভিডিওতে ১ লক্ষ নামের একটি ফাইল ব্যবহার করে পরীক্ষা করে দেখানো হয়েছে যে দুটির মধ্যে সময়ের পার্থক্য কতটা।

ভিডিও রেফারেন্স: [05:19:23]

বিশ্লেষণ:

  • Linear Search: ১ লক্ষ নামের লিস্ট থেকে ১০০টি নাম খুঁজতে সময় লেগেছে প্রায় ০.৯ সেকেন্ড

  • Binary Search: একই কাজ করতে সময় লেগেছে মাত্র ০.২৫ সেকেন্ড

অর্থাৎ, ডাটা সর্ট করা থাকলে আমরা অর্ধেকেরও কম সময়ে কাজ শেষ করতে পারি। ডাটার পরিমাণ যত বাড়বে, এই সময়ের পার্থক্য তত বেশি প্রকট হবে।

  • কঠিন শব্দ (Big O Notation): এটি একটি পরিমাপ যা দিয়ে বোঝা যায় কোনো অ্যালগরিদম কত দ্রুত কাজ করে।

    • Linear Search-এর গতিকে বলা হয় O(n) (ডাটা যত বাড়বে, সময়ও তত বাড়বে)।

    • Binary Search-এর গতিকে বলা হয় O(log n) (ডাটা অনেক বাড়লেও সময় খুব সামান্য বাড়ে)।


আমার বিশ্লেষণ ও চিন্তা (Analysis & Perception)

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

বাস্তবতা ও পরামর্শ: ১. সঠিক অ্যালগরিদম বাছাই: সবসময় যে সর্ট করতে হবে এমন নয়। যদি আপনার ডাটা খুব ছোট হয় (যেমন ১০-২০টি নাম), তবে সর্ট না করে সরাসরি খুঁজলেও সময় খুব একটা নষ্ট হবে না। কিন্তু বড় সিস্টেমের জন্য সর্টিং মাস্ট। ২. বিকল্প চিন্তা: বর্তমানে ডাটাবেজগুলো (যেমন SQL বা NoSQL) অটোমেটিক ইনডেক্সিং ব্যবহার করে, যা অনেকটা এই সর্টিং এবং বাইনারি সার্চের উন্নত সংস্করণ। তাই আপনি যদি একজন ডেভেলপার হতে চান, তবে ইন্টারনাল এই মেকানিজমগুলো বোঝা খুব জরুরি। ৩. পরামর্শ: আপনি যদি নিজে কোডিং শিখছেন, তবে বড় কোনো ফাইল (যেমন ডিকশনারি বা ইউজার লিস্ট) দিয়ে এই দুটি সার্চের প্র্যাকটিস করে দেখুন। নিজের চোখে সময়ের পার্থক্য দেখলে বিষয়টি আরও পরিষ্কার হবে।

পরিশেষে: ডাটা সাজিয়ে রাখা মানে কেবল পরিপাটি থাকা নয়, এটি হলো আধুনিক কম্পিউটিংয়ের গতি বা স্পিডের মূল চাবিকাঠি। [05:22:00]

[

Algorithms and Data Structures Tutorial - Full Course for Beginners

freeCodeCamp.org · 5.7M views

](http://www.youtube.com/watch?v=8hly31xKli0)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...