DEV Community

Monirul Islam
Monirul Islam

Posted on

Array Data Structure

Array প্রোগ্রামিং এ সবচেয়ে বেশি ব্যবহৃত Data Structure। প্রতেকটা Programng Language বিল্টইন দেওয়া থাকে। অনেকেই আছে যারা জানেই যে, Array একটা Data Structure। অথচ তারা বিশেষ করে যারা নতুন প্রোগ্রামিং শিখেছে তার এই Array প্রতিনিয়ত ব্যবহার করেছে।

কিন্তু বড় বড় প্রজেক্ট-এ array ব্যবহার করা হয় না। কিন্তু কেন? এর জন্য array কিভাবে কাজ করে সেটা আগে জানা প্রয়োজন।

Array-এর গঠন ও কার্যপ্রনালি

যখন কোন array নেওয়া হয় তখন মেমরীতে একটি জায়গা বরাদ্দ হয়। প্রত্যেকটা array এর এলিমেন্টের জন্য পরপর জায়গায় বরাদ্দ হয়। নিচের ছবিটা দেখলে বুঝতে পারবেন

Array Memory Allocation
Source: Google

এখানে লক্ষ করলে দেখতে পারবেন যে , এখানে array এর প্রথম এলিমেন্টের ram address 0x0001। (এই address টা প্রতিবার randomly allocate হয়) array এর বাকি এলিমেন্ট গুলার জন্য ram address পরপর allocate হয়ে যায়। এভাবেই মুলত array এর জন্য memory allocate হয়।

Array-এর সীমাবদ্ধতা

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

Ram Allocation table
কম্পিউটারের মেমরী দেখতে অনেকটা উপরে টেবিল এর মত। এখন আমরা তো জানি array মেমরীতে একটা random এর address থেকে পরপর memory allocate করে। এভাবে যদি চলতে থাকে তাহলে দেখা যাবে একটা সময় পরবর্তী কোন address নেই। তখন কিন্তু প্রোগ্রামটা রান হবে না। Memory limit exceeded এই টাইপের একটা error দিবে।

কিন্তু ram কিন্তু আরো খালি জায়গা রয়েছে। সেগুলা কিন্তু খালিই থেকে যাচ্ছে। মূলত এই কারনে অনেক বেশি ডাটা নিয়ে কাজ করা সময় array ব্যবহার করা হয় না।

Array-এর কিছু operations

Traversing

array তে traverse করা খুব সহজ। লুপের সাহায্যে খুব সহজে traverse করা যায়। নিচের কোড দেখলে সহজেই বোঝা যাবে।

Array Traversing

Insertion

array-তে তিনটি স্থানে নতুন ডাটা insert করা যায়। প্রথমে, যেকোন পজিশনে এবং সবার শেষে। সবারশেষে ডাটা insert করা খুবই সহজ কিন্তু প্রথমে এবং যেকোন পজিশনে ডাটা insert করা একটু কঠিন।

এখানে আমরা তিনটার কাজ একবারে করব।
array তে ডাটা insert করার জন্য ডাটা এবং পজিশন এই দুইটা ভ্যালুর প্রয়োজন হয়। এখন যে পজিশনে ডাটা করা হবে, ওই পজিশন আগে খালি করতে হবে। এজন্য ওই পজিশন এবং তার পরবর্তী সকল ভ্যালুকে এক ঘর ডানদিকে সরিয়ে দেব।

Value insertion in array

Deletion

array এর ডাটা delete করা অনেকটাই Data insert করার মত। ওখানে যে পজিশনে নতুন ডাটা একঘর ডানদিকে সরিয়ে কাজ করা হয়েছিল। কিন্তু এখানে যে পজিশনের ডাটা delete করা হবে, তার পরের ডাটা গুলো এক ঘর বাম দিকে সরিয়ে দিতে হবে। insertion এর reverse প্রসেস বলা যেতে পারে।

Data Deletion

Searching and Sorting

array এ ভিতরে ডাটা খোজার জন্য বিভিন্ন algorithm আছে। যেমন

  1. Linear Search
  2. Binary Search ইত্যাদি

Searching এর মত Sorting এর জন্য অনেক algorithm আছে। যেমন

  1. Bubble Sort
  2. Selection Sort
  3. Insertion Sort
  4. Quick Sort
  5. Merge Sort ইত্যাদি

এসব বিষয়ে সামন আমরা বিস্তারিত জানতে পারব।

শেষ

আপনার মতামত জানাতে ভুলবেন না।

Top comments (0)