অ্যালগরিদম – Algorithms
-
CP 101: টু পয়েন্টার টেকনিক (Two pointer technique)
টু পয়েন্টার হলো এমন একটি সমস্যা সমাধানের উপায় যেখানে আমরা দুইটি পয়েন্টার ব্যবহার করে কম রানটাইমে সমস্যার সমাধান করি। এখানে পয়েন্টার মানে শুধু c/c++ এর পয়েন্টার বুঝায় না, এখানে পয়েন্টার…
আরও পরুন » -
সর্টিং: বাবল সর্ট (Bubble sort) অ্যালগরিদম
বাবল সর্ট (Bubble sort) একটি সহজ সর্টিং অ্যালগরিদম যা আমরা ব্যবহার করি যখন কোন array বা লিস্ট সর্ট করতে হয়। এই অ্যালগরিদমটি $O(n^2)$ টাইম কমপ্লেক্সিটিতে অ্যারেকে সর্ট করে দিতে পারে।…
আরও পরুন » -
গ্রাফ: মিনিমাম স্প্যানিং ট্রি ও ক্রুসকাল অ্যালগরিদম [Kruskal’s algorithm]
গ্রাফ থিউরির নতুন একটি লিখায় আপনাদের স্বাগতম। এই লিখায় আমরা মিনিমাম স্পানিং ট্রি (Minimum spanning tree) নিয়ে জানবো এবং ক্রুসকাল অ্যালগরিদমের (Kruskal’s algorithm) মাধ্যমে ইমপ্লিমেন্ট করা দেখবো। ক্রুসকাল অ্যালগরিদম Josheph…
আরও পরুন » -
সর্টিং: কুইক সর্ট (Quick Sort) অ্যালগরিদম
কুইক সর্ট (Quick sort) (aka: qsort, Quicksort) একটি দ্রুতগতির সর্টিং অ্যালগরিদম যা C.A.R Hoare আবিষ্কার করেন। এটি একটি ভাগ কর শাসন কর (Divide and Conquer) ঘরনার অ্যালগরিদম যেখানে প্রতিবার আমরা…
আরও পরুন » -
ডাটা স্ট্রাকচার: স্ট্যাক এবং কিউ (Stack and Queue)
স্ট্যাক এবং কিউ (Stack and Queue) বহুল ব্যবহৃত ডাটা স্ট্রাকচার (Data structure) গুলোর মধ্যে অন্যতম। যখন এমন কোন সিচুয়েশন আসে যেখানে আমাদেরকে ডাটার পরিমাণ নির্দিষ্ট করা হয় না, আবার ডেটা…
আরও পরুন » -
ডাটা স্ট্রাকচার: ডিসজয়েন্ট সেট ইউনিয়ন / ইউনিয়ন ফাইন্ড
ডিসজয়েন্ট সেট ইউনিয়ন (Disjoint Set Union/ DSU) যাকে প্রধান দুটি অপারেশন এর নাম অনুসারে ইউনিয়ন ফাইন্ড (Union-Find) হিসেবেও জানি তার মাধ্যমে কিছু নোড একই সেটে আছে কি না তা বের…
আরও পরুন » -
ডাটা স্ট্রাকচার: স্পার্স টেবিল – O(1) টাইমে রেঞ্জ মিনিমাম ম্যাক্সিমাম কুয়েরি
আমরা সেগমেন্ট ট্রি নিয়ে লিখায় দেখেছিলাম কিভাবে O(log n) টাইমে আমরা রেঞ্জ ম্যাক্সিমাম, মিনিমাম কুয়েরি করতে পারি। স্পার্স টেবিল (Sparse table) নিয়ে এই লিখায় দেখবো কিভাবে O(1) টাইমে রেঞ্জ মিনিমাম,ম্যাক্সিমাম…
আরও পরুন » -
সংখ্যাতত্ত্ব: মৌলিক সংখ্যা- সিভ অফ এরাটোস্থেনিস
মৌলিক সংখ্যা বা Prime Number আসলে কি ? মৌলিক সংখ্যা হলো সেসব সংখ্যা যারা ১ থেকে বড় পূর্ণসংখ্যা এবং ১ ও ঐ সংখ্যা বাদে অন্যকোন সংখ্যাদ্বারা নিঃশেষে বিভাজ্য নয়। এখন…
আরও পরুন » -
সংখ্যাতত্ত্ব: অয়লার টোশেন্ট ফাংশন/ ফাই ফাংশন
অয়লার টোশেন্ট ফাংশন (Euler's Totient Function) যা ফাই ফাংশন (Phi function) হিসেবেও পরিচিত, একটি সংখ্যা n এর 1 থেকে n পর্যন্ত কত গুলো সহমৌলিক বা Co-Prime আছে তা গননা করতে…
আরও পরুন » -
সংখ্যাতত্ত্ব: লিনিয়ার ডায়োফ্যান্টাইন সমীকরণ
সংখ্যাতত্ত্বের আরেকটি লিখাতে আপনাদের স্বাগতম। আগের লিখায় দেখেছিলাম আমরা কিভাবে ইউক্লিডিয়ান অ্যালগরিদম ব্যবহার করে $a.x_g+b.y_g=gcd(a,b)$ এর সমাধান করতে পারি। এই লিখায় আমরা $a.x+b.y=c$ এর সমাধান করা শিখবো যেখানে $c|gcd(a,b)$ বা…
আরও পরুন » -
সংখ্যাতত্ত্ব: এক্সটেন্ডেড ইউক্লিডিয়ান অ্যালগরিদম
আমরা এর আগের ইউক্লিডিয়ান অ্যালগোরিদম নিয়ে লিখায় দেখেছিলাম কিভাবে দুইটি সংখা a,b এর গসাগু log n এ বের করা যায়। ইউক্লিডিয়ান অ্যালগোরিদমের বর্ধিত ভার্সনের (এক্সটেন্ডেড ইউক্লিডিয়ান অ্যালগরিদম বা Extended Euclidean…
আরও পরুন » -
সংখ্যাতত্ত্ব: ইউক্লিডিয়ান অ্যালগরিদম ও গ.সা.গু
ইউক্লিডিয়ান অ্যালগরিদম হলো গ.সা.গু. বা গরিষ্ঠ সাধারণ গুণনীয়ক বের করার জন্য একটি দ্রুতগতির অ্যালগরিদম। এই অ্যালগরিদমের নামকরণ করা হয় ইউক্লিডের নামে যিনি তার Elements নামক বইয়ে বর্ননা করেছেন, দুটি সংখ্যার…
আরও পরুন » -
সংখ্যাতত্ত্ব: বাইনারি এক্সপোনেন্টিয়েশন
বাইনারি এক্সপোনেন্টিয়েশন অ্যালগরিদম ব্যবহার করে আরেকটি লিখা আছে আমার ব্লগে, সংখ্যাতত্ত্ব: মডুলার অ্যারিথমেটিক (Modular arithmetic) – Big mod, এই লিখাতেও আমি রিকার্শনের মাধ্যমে কিভাবে অ্যালগরিদমের ইমপ্লিমেন্ট করতে হয় তা ব্যাখ্যা…
আরও পরুন » -
ডাটা স্ট্রাকচার: লিঙ্কড লিস্ট (Linked list) টিউটোরিয়াল
লিঙ্কড লিস্ট (linked list) হলো একটি ডাটা স্ট্রাকচার যেখানে ডাটা গুলোকে একটার পরে আরেকটা, লিঙ্ক আকারে রাখা হয়। ডাটা রাখার জন্য নোড তৈরি করা হয় একাধিক ফিল্ডের সমন্বয়ে। একটা নোড…
আরও পরুন »