এলগরিদম কথন ( শুধু মাত্র C.S.E এর স্টুডেন্ট এর জন্য ) ।

আগেই বলে রাখি এই লেখাটা সম্পূর্ণ C.S.E এর স্টুডেন্ট দের জন্য , অন্যরা নিরাপদ দূরত্ব বজায় রাখুন ।

পাগলের পাগলামি মানুষের সাথে তবে আমার পাগলামি কম্পিউটার এর সাথে । আমার এই পাগলামি মানুষ বুঝে না , আমার কম্পু বুঝে । আমার পাগলামির কিছু নমুনা দেওয়া যাক । প্রথমত কম্পিউটার কাজ করে মিলি সেকেন্ডে , আমার একদিন শখ হলো কম্পিউটার এর ক্ষমতা পরিক্ষা করা । যেই কথা সেই কাজ । এলগোরিদম বইয়ে অনেক গুলো সর্টিং এর এলগোরিদম আছে যার মধ্যে Quick Sort এবং Marge Sort নামে দুটো সর্টিং খুব জনপ্রিয় । এই দুটো এলগোরিদম কে Java তে কোডিং করলাম ।

কোডিংটা ছিল এমন , এক হাজার Random সংখ্যাকে একবার Quick Sort আর একবার Marge Sort করা এবং System থেকে এই দুটো সর্টিং এর সময় নেয়া । এই দুইটা সময়ের পার্থক্য দিয়েই তাদের কার্যক্ষমতা বের করা ।
হ্যাঁ আমি বের করলাম যেটি সেটি হচ্ছে ১০০০০০ Random সংখ্যাকে Marge sort করলে Quick Sort থেকে ০.০২৬ সেকেন্ড কম সময় লাগে ( তবে কম সংখ্যক সংখ্যার জন্য টাইম এর তেমন পরিবর্তন দেখা যাবে না ) অর্থাৎ এটা থেকেই এলগরিদম এর কঠিন টপিক Complexity of Algorithm আমার কাছে অনেকটা পরিস্কার হয়ে গেল ।
এলগরিদম নিয়ে আরেকটি পাগলামি করলাম সেটা ছিল NQueen এলগরিদম দিয়ে । আগে একটু বলে নেই NQueen এলগরিদম টা হচ্ছে N টি Queen কে N সংখ্যক ঘরে রাখতে হবে যাতে করে দাবার Queen এর চালে কেউ কাউকে ধরতে না পারে ।
আমার চিন্তা হল এই প্রব্লেমটা দিয়ে তৈরি আমার C কোডিং সর্বোচ্চ কতটি Queen নিয়ে ফলাফল কত সময়ে দিতে পারে । যেই কথা সেই কাজ । প্রোগ্রামটি আরও Efficient করার জন্য কিছু পরিবর্তন আনলাম যেটা অবশ্যই এর নির্দেশিত এলগরিদম অনুসারে এবং ফলাফল দেখতে থাকলাম ।
ফলাফলে যেটি হল , Queen ২১টি হলে ফলাফল আসতে সময় লাগে ১০ সেকেন্ড এর মতো আর ২৯টি হলে সময় লাগে ১ মিনিট এর মতো । অবিশ্বাস্য হলেও সত্য আমার দেখা সবচেয়ে High Time CPU calculation ছিল এটি ।
কিছু নমুনা এর সাথে আরও যোগ করা যেত যেমন Android Application নিয়ে করা কিছু পাগলামি যা অন্য কোন একদিন শেয়ার করবো ।
শেষটা আমার এক স্যার এর গল্প দিয়ে হোক , স্যার বলতেন প্রাক্টিকাল খাতার সতর্কতা সবার আগে লেখা উচিৎ কারন এই সতর্কতা যদি কেউ না জানে তবে তো সে প্রাকটিকালি সবকিছু নষ্ট করে ফেলবে । সেই জন্যই সতর্কতা সবার শুরুতে দিলাম ।

কোডিং সম্পর্কে যেকোনো ধরনের পরামর্শ করতে আপনিও সাদরে আমন্ত্রিত ।

ধন্যবাদ

Level 0

আমি মাহমুদুল হাসান। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 9 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 13 টি টিউন ও 46 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

জীবনে সব সময় কিছু করতে চাই , করতে চাই মনভাব থেকেই ব্লগ পোস্ট করা শুরু । আমাকে মেইল করতে [email protected]


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

বুঝলাম সময় বেশি লাগল, তো?

    @Anwar: ভাই এখানে প্রোগ্রামের Coplexity Factor নিয়ে কিছু বাস্তব অভিজ্ঞতা শেয়ার করা হয়েছে , সময় কম বেশী সেটা আলোচ্য বিষয় না ।

Level 0

algorithm nie apnar paglamir kotha pore khub valo laglo….kintu algorithm shudhu cse r student der jonno apnar ei kotha ta valo laglona….amar jana mote euclid er goshagu ber korar algorithm k duniar prothom shofol algorithm dhora hoi…euclid ki cse r student chilen? joke korlam …..:)
ashole algorithm amar kache mathematics er shobche mojadar effective subject gulor ekta …..amio algorithm khub valobashi…..apnar algorithm nie kaj shommondhe future e aro janaben ei asha rakhi….
khub shundar ei lekhatar jonno apnake onek dhonnobad….

    @Mithu: ভাই এলগরিদম শব্দটা CSE এর স্টুডেন্ট দের সবচেয়ে বেশী ব্যবহার করতে হয় , এজন্য অন্যরা যাতে বিষয়টা দ্রুত ধরতে পারে সে জন্য সাথে লেখা টা দেওয়া হয়েছে । আর আপনি মনে হয় GCD , LCM এর কথা বলছেন , হ্যাঁ এটাও সি এস ই তে জনপ্রিয় এলগরিদম । আপনার এলগরিদম এর সফল্য যাত্রা কামনা করি ।
    ধন্যবাদ কমেন্ট করার জন্য

Hasan vai,
C / c++ ar jonno kono valo bangla learing website ase ki? english books ba website. tutorail collection ase tobe bangla web pele valo hoto.. ar shahrial vaier begging c( very little ebook)
ta poresi bangla ta dia c ta aktu bozar jonno r ki.. c ar bapare kono suggesion den to vai.

Thanks Brother… go ahead

Level 0

ধন্যবাদ সুন্দর একটি টিউন করার জন্য

ভালো লেগেছে বলতে হবে। সামনে আরও পাগলামির Sample দেখতে চাই।

Level 0

Time Complexity !