প্রোগ্রামিং বা কম্পিউটার বিজ্ঞান সাধারণভাবে, সমস্ত অ্যালগরিদম সম্পর্কে?


40

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

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

ধন্যবাদ।

পি / এস: আপনি যদি আমাকে জিজ্ঞাসা করেন আমি কী পছন্দ করি তবে এটি ব্যবহারকারীদের সমস্যা উদ্ভাবনীভাবে সমাধানের জন্য ভাল সফ্টওয়্যার তৈরি করছে। আমি মনে করি যে এটি অগত্যা মানে সফ্টওয়্যারটি খুব জটিল হতে হবে না।


26
কোনও পাঠ্যবক্স এবং একটি বোতাম দিয়ে আপনাকে পুরো ওয়েবটি অনুসন্ধান করার অনুমতি দেওয়া গুগলের পক্ষে কতটা জটিল?
জেফও

21
@JeffO আমি এমনকি আর বোতাম ব্যবহার করবেন না ;-)
maple_shaft

1
গুগল যদি এটিকে আরও সহজ করে তোলে তবে অন্যান্য সমস্ত অনুসন্ধান সাইটগুলিতে কোনও কোডের প্রয়োজন হবে না।
জেফো

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

2
এটি সমস্ত অ্যালগরিদম সম্পর্কে নয়, তবে তারা সিএসের মূল অংশে রয়েছে। তবে প্রোগ্রামিংয়ে আরও অনেক কিছুই আছে কেবল অ্যালগরিদম এবং যুক্তি (কোড বজায় রাখা, উদাহরণস্বরূপ, কেবলমাত্র অ্যালগরিদমের জ্ঞান প্রয়োজন হবে না )।
হাইলেম

উত্তর:


44

অ্যালগরিদমগুলি পরিষ্কার

এখানে অ্যালগরিদমগুলি সম্পর্কে সুন্দর জিনিসটি: তারা যে সমস্যার মুখোমুখি হন সে স্থানটি সংজ্ঞায়িত, যেমন আপনার প্রয়োজনীয়তা কেবল প্রকৃতপক্ষে জানা যায় না , তবে সাধারণত সমাধানের মানের জন্য মেট্রিকগুলির মতো অনেকটা আনুষ্ঠানিকও হয়।

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

অ্যালগরিদমগুলি একটি দক্ষ ফিল্টার

শিল্পের বর্তমান সমস্যা (এবং শিক্ষা) স্নাতকদের নিম্ন মানের is এটি ফিজবুজ পরীক্ষার মাধ্যমে চিত্রিত হয়েছে , যা:

একটি প্রোগ্রাম লিখুন, এটি 1 থেকে 100 পর্যন্ত সংখ্যার মধ্য দিয়ে যাবে এবং সংখ্যাটি 3 দ্বারা বিভাজ্য হলে "ফিজ" মুদ্রণ করবে, যদি এটি 5 দ্বারা বিভাজ্য হয় তবে "গুজ" এবং কোনওটি দ্বারা বিভাজ্য হলে সংখ্যাটি নিজেই মুদ্রণ করবে।

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

অ্যালগরিদমগুলি সফ্টওয়্যার বিকাশের একটি ক্ষুদ্র অংশ

সত্য কথাটি, আপনি শিল্পে কাজ করার সাথে সাথে আপনি আপনার অ্যালগরিদম দক্ষতা 1% এরও বেশি সময় ব্যবহার করবেন না।

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

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

অ্যালগরিদম সমালোচনাযোগ্য

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

কি সত্যিই গুরুত্বপূর্ণ গণনীয় জটিলতা এবং কিভাবে এটি কমে রাখতে করার জন্য একটি অনুভূতি পেতে, হয় আমি আরো একটি অনুরূপ প্রশ্নের জবাবে ব্যাখ্যা । বা এমন বিষয়গুলিতে বিশেষীকরণ করা যেখানে জিইউআই বিকাশের মতো এটি কেবল গুরুত্বপূর্ণ নয়, তবে আবার প্রায় সবাই একে ঘৃণা করে ... কোনও কারণে!


5
খুব বিস্তৃত এবং বুদ্ধিমান উত্তরের জন্য +1 এছাড়াও, এটি দুঃখজনক যে ফিল্ডবাজ ফিল্টারটি কতটা কার্যকর। এটি না করতে পেরে একেবারে অজুহাত নেই।
অ্যাডাম ক্রসল্যান্ড

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

1
1% কিছুটা বেশি উচ্চ হতে পারে
হেম্প

1
@ ম্যাথিউইউম .: প্রিন্টিং উভয়ই কীভাবে প্রয়োজনীয়তার সাথে সংযুক্ত করা যায় তার অন্তর্নিহিত। এটি অনুপস্থিত, এর অর্থ আপনি প্রয়োজনীয়তার যত্ন সহকারে পরীক্ষা করেন নি; এখন, আমার কাছে আকর্ষণীয় মনে হচ্ছে এটি আপনাকে কোনও নির্দিষ্ট ক্রমে, বা এমনকি একই ক্রমে নিয়মিতভাবে প্রিন্ট করতে হবে তা বলে না ...
জোমোরনো

1
@ ব্যাকডোডস: হ্যাঁ, তবে এলোমেলো ক্রমে এটি করা আরও মজাদার মনে হচ্ছে ... নোট করুন যে এই উত্তরে বর্ণিত প্রয়োজনীয়তা রেখাগুলির উল্লেখ করে না, কেবল মুদ্রণ করে । যদি আপনাকে একটি ফিজবুজ পরীক্ষা দেওয়া হয় তবে এটি উল্লেখ করা সার্থক হতে পারে যে এতে অনেকগুলি আনস্টেট অনুমান রয়েছে (তবে আবার এটি আপনাকে বুদ্ধিমান হিসাবে চিত্রিত করতে পারে)।
jmoreno

30

সাধারণভাবে, কর্ম হিসাবে প্রোগ্রামিং করা অ্যালগরিদম সম্পর্কে নয়। আপনি গভীর অ্যালগরিদমিক দক্ষতার প্রয়োজন ছাড়াই বহু বছর ধরে প্রোগ্রামিং সিআরইউডি অ্যাপ্লিকেশনগুলি ব্যয় করতে পারেন।

কাজ হিসাবে প্রোগ্রামিং প্রায়:

  1. যোগাযোগ:

    • আপনার উত্স কোডটি আপনার সমবয়সীদের কাছে আপনার ধারণাগুলি জানানোর একটি মাধ্যম। যদি কেউ আপনার কোডটি পড়তে / বুঝতে না পারে তবে এটি মূল্যহীন।

    • একা একা বিকাশকারী, যিনি অন্য কোনও বিকাশকারীর সাথে কথা বলেন না, সম্ভবত কোডে ভুল করা শুরু করবেন এবং বিশ্বাস করবেন যে তাঁর নিজস্ব পদ্ধতির একমাত্র গ্রহণযোগ্য।

    • স্টেকহোল্ডার, কিউএ ডিপার্টমেন্ট, ব্যবহারকারী, ভিজ্যুয়াল ডিজাইনার, ডিবিএ ইত্যাদির সাথে কীভাবে যোগাযোগ করবেন তা আপনার অবশ্যই জানা উচিত

    • একজন অভিজ্ঞ বিকাশকারী হিসাবে আপনাকে অবশ্যই কম অভিজ্ঞ সহকর্মীদের পড়াতে হবে যারা তাদের দক্ষতার উন্নতি করতে চান।

  2. সঠিক সরঞ্জামগুলির জ্ঞান: সংস্করণ নিয়ন্ত্রণ, বাগ ট্র্যাকিং সিস্টেম, আইডিই, কোন ভাষা কোনও নির্দিষ্ট কাজের জন্য আরও উপযুক্ত এবং কেন, কোড বিশ্লেষণ কীভাবে ব্যবহার করবেন ইত্যাদি

  3. বিস্তৃত জ্ঞান ও সংস্কৃতি: কার্যকরী ভাষা কী কী? কম্পিউটার কোডকে কীভাবে ব্যাখ্যা করে? এলওসি কেন অর্থহীন পদক্ষেপ? প্রভৃতি

  4. আপনি যে ভাষা (গুলি) নিয়ে কাজ করেন তার গভীর জ্ঞান।

  5. আলগোরিদিম।

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


12
-1: "টি ককটেলের অ্যাপ্লিকেশন" হয় আলগোরিদিম। এগুলি কেবল (সাধারণভাবে) সাধারণ। কোনও "মহৎ অর্থ" নেই।
এস .লট

2
এবং সোর্স কোড কম্পিউটারে আপনার একমাত্র যোগাযোগের চ্যানেল যা আপনি এটি করতে বলছেন ঠিক তেমন করে (এবং আপনি এটি করতে চান তা কখনই নয়)
ratchet freak

5
সিআরডিডি অ্যাপ্লিকেশনগুলি পরিষ্কার করার জন্য বাজার কতটা দুর্দান্ত, এটির জন্য আশ্চর্যজনক যেগুলির ইঞ্জিনিয়ারিং দলগুলি অ্যালগরিদমের মূল বিষয়গুলি উপেক্ষা করেছে (বা কখনও শেখেনি)।
জেসনট্রু

2
@ এস.লট: "সিআরইউডি অ্যাপ্লিকেশনগুলি আলগোরিদিমগুলি" "আমি আমেরিকা" এর সাথে মিল alog ;)
জিম জি।

1
@ জিমজি: ​​স্টিভেন কলবার্ট যেমন বলেছেন যে "আমি আমেরিকা এবং তেমন আপনিও করতে পারেন"। সিআরইউডি অ্যাপ্লিকেশনগুলিতে থাকে, ভিত্তিতে থাকে, অন্তর্ভুক্ত হয়, এর বাস্তবায়ন হয়, এর বাস্তবায়ন হয়, মূর্ত হয়, আলগোরিদিমগুলি প্রতিফলিত করে। নির্দিষ্ট অভিযোগের প্রস্তাব না দিয়ে আপনি কেবল অভিযোগ করেছিলেন। কোনটি আপনাকে সুখী করতে পারত?
এস .লট

16

আমি মনে করি যে সাক্ষাত্কারগুলিতে অ্যালগরিদম সম্পর্কে প্রশ্নগুলি কম্পিউটার বিজ্ঞানের মৌলিক বিষয়গুলির জন্য প্রার্থীদের উপলব্ধি বিচারের চেষ্টা করার একটি প্রধান উপায়। যদিও এটি কোনও পেশাদার প্রোগ্রামারের দক্ষতার একমাত্র গুরুত্বপূর্ণ ক্ষেত্র নয়, এটি একটি ভাল প্রোগ্রামারের মূল দক্ষতার মধ্যে একটি।

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

অ্যালগোরিদম ডিজাইনের অনুশীলন কীভাবে করা যায়, স্টিভ ইয়েজি প্রোগ্রামার হিসাবে সাক্ষাত্কারের জন্য তাঁর দুর্দান্ত গাইডে স্কিয়েনার দ্য অ্যালগরিদম ডিজাইন ম্যানুয়ালকে সুপারিশ করেন ।


4
+1: প্রোগ্রামিং ল্যাঙ্গুয়েজ, ফ্রেমওয়ার্ক, অপারেটিং সিস্টেম, সম্পাদক, টুলসেটগুলি, তারা সকলেই আসে-যায়, তবে কীভাবে সমস্যাগুলি কার্যকরভাবে সমাধান করতে হয় তা জানার সাথে ডেটা স্ট্রাকচার এবং অ্যালগরিদমের ফান্ডামেন্টালগুলি জেনে রাখা উচিত। এই জিনিসগুলি সবসময় আমাদের সাথে থাকে।
অ্যাডাম ক্রসল্যান্ড

"কীভাবে অ্যালগরিদম ডিজাইনের অনুশীলন করা যায়, স্টিভ ইয়েজি একজন প্রোগ্রামার হিসাবে সাক্ষাত্কারের জন্য তার দুর্দান্ত গাইডে স্কিয়েনার দ্য অ্যালগরিদম ডিজাইন ম্যানুয়ালটি গ্রহণ করেছিলেন।" দুঃখিত, তবে গ্রেড শিক্ষার্থী হওয়ার কারণে এই প্রশ্নটি করা ব্যক্তির পক্ষে এটি প্রযোজ্য নয়। গুগল / এমএস স্কিয়েনা (গ্রেড শিক্ষার্থীদের জন্য) থেকে, আন্তর্জাতিক কলেজিয়েট প্রোগ্রামিং প্রতিযোগিতায় অংশ নিয়েছে এমন প্রশ্ন জিজ্ঞাসা করতে এগিয়ে চলেছে। (এটি আমি উপাখ্যানীয় অভিজ্ঞতা থেকে নিশ্চিতভাবে জানি)। স্কিয়েনার বইটি এখনও ব্যবহৃত হয় - তবে মূলত আন্ডারগ্র্যাড স্তরের প্রার্থীদের জন্য।
ব্যবহারকারী 39606089

প্রোগ্রামিং প্রতিযোগিতায় উপস্থিত প্রশ্নগুলির ক্ষেত্রে - আপনি যদি প্রশ্নটি আগে না দেখে থাকেন তবে আপনি বেশ
হজ হচ্ছেন

11

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

  • বিকাশকারীরা যারা দ্রুত নতুন ডোমেনগুলি শিখতে এবং খাপ খাইয়ে নিতে পারে না

  • বিকাশকারীরা যারা অর্থবহ উপায়ে ক্লায়েন্ট বা অংশীদারদের সাথে সামাজিকভাবে যোগাযোগ করতে পারে না cannot

  • যে বিকাশকারীরা দ্বিতীয় অনুমান করতে এবং ভুল বা দুর্বলতার সাথে ব্যবসায়িক প্রয়োজনীয়তাগুলি চিন্তা করতে পারে না

  • বিকাশকারীরা যারা কীভাবে তাদের কোড এবং বৈশিষ্ট্যগুলি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করবেন তা বোঝেন না

  • সময়োপযোগী ফ্যাশনে অর্থবহ অনুমান সরবরাহ করতে পারে না এমন বিকাশকারীরা

  • বিকাশকারীগণ যারা পরিষ্কার এবং সংক্ষিপ্ত ডকুমেন্টেশন তৈরি করতে পারবেন না

  • বিকাশকারীরা যারা স্ব-সূচনা হতে পারে না বা কোনও পরিস্থিতির ভার নিতে পারেন না

দশজনের মধ্যে নয় বার আমি বাজাব যে প্রায় কোনও পরিস্থিতিতেই যেখানে কোনও বিকাশকারী কোনও সংস্থায় ছুটে আসে কারণ তারা আশাব্যঞ্জকভাবে উপরের গুণাবলীর একটিতে ব্যর্থ হয়। গুগল এবং ফেসবুক ভুলে যান, এগুলি ব্যতিক্রম মামলা এবং কম্পিউটার বিজ্ঞানকে গভীরভাবে বুঝতে পারে এমন লোকদের বৈধ প্রয়োজন রয়েছে।

প্রকৃত ব্যবসায়গুলি কম্পিউটার বিজ্ঞানের জটিলতার সাথে লড়াই না করলেও তারা মানবতার জটিলতার সাথে লড়াই করে। সমস্যাটি হ'ল উপরে বর্ণিত গুণাবলীর জন্য পরীক্ষা করা সত্যই কঠিন। আপনার অন্ত্রের প্রতিক্রিয়ার উপর ভিত্তি করে আপনাকে বেশিরভাগ সময় এই গুণাবলীর উপর লোকদের বিচার করতে হয়। এটি যদি আপনার কাছে ভাল লোকের দক্ষতা এবং স্বজ্ঞাততা না থাকে তবে এটি অ্যালগরিদম জ্ঞানের জন্য পরীক্ষা করা আরও সহজ।


+1 নিয়মিত এবং নন-গুগল-এর মতো ফ্রেইকিশ সংস্থাগুলিতে ভাল ব্যবসায়ের দক্ষতা সম্পন্ন লোকদের প্রয়োজন হয় এবং প্রাথমিকভাবে কীভাবে আবিষ্কারগুলি প্রয়োগ / প্রয়োগ / পরিচালনা / পরিবর্তন করতে হয় তা বোঝার ক্ষেত্রে। এটি কোনও ভুল নয় যে গুগলের মতো সংস্থাগুলি চপল আন্দোলনটি করতে পারেনি, কারণ কম্পিউটার বিজ্ঞান ব্যবসায়ের সমস্যা সমাধানের বিষয়ে নয়।
এস রবিন্স

10

আমি একজন প্রোগ্রামারের শব্দভান্ডারের অংশ হিসাবে ব্যক্তিগতভাবে "স্ট্যান্ডার্ড" অ্যালগরিদম এবং ডেটাস্ট্রাকচার দেখতে পাই। এবং প্রোগ্রামার হিসাবে আপনি যে ব্যবহারিক সমস্যার মুখোমুখি হন তার বেশিরভাগ ক্ষেত্রে একটি সমাধান থাকে যা (অন্তত আংশিক) এই শব্দভাণ্ডারে প্রকাশযোগ্য।

এই শব্দভাণ্ডারটিকে আপনার নিষ্পত্তি হিসাবে রাখা আপনার "নিজস্ব" সমাধানগুলি (চাকাটিকে পুনরায় উদ্ভাবন করা) যাতে আপনি আরও চৌকস এবং প্রায়শই দ্রুত কাজ করতে দেয় সেজন্য আপনাকে বাধা দেয়।

"বেশিরভাগ পাঠ্যপুস্তক বা ওয়েবসাইটগুলিতে পাওয়া আপাতদৃষ্টিতে খুব জটিল সমস্যাগুলি সমাধান করতে আমি আগ্রহী বলে মনে হচ্ছে না"

"এগুলি পরে মনে রাখতে এবং পুনরায় ব্যবহার করা আমার পক্ষে অত্যন্ত কঠিন মনে হয়েছে"

এগুলি সম্পূর্ণ করতে নিজেকে জোর করুন। আপনি পরে নিজেকে ধন্যবাদ জানাতে হবে। এমনকি যদি আপনি তাদের পুরো বিশদে না স্মরণ করেন (যদিও যথেষ্ট অনুশীলনের সাথে আপনি অবশ্যই করবেন), বলতে সক্ষম হতে "আমি মনে করি অ্যালগোরিদম এক্স বা ডেটাস্ট্রাকচার ওয়াই ব্যবহার করে অনুরূপ কিছু সমাধান করা" আপনাকে প্রচুর পরিমাণে সহায়তা করবে। এমনকি এটির জন্য আপনাকে বিশদটি সন্ধান করতে এবং আপনার স্মৃতি সতেজ করা প্রয়োজন।


ডেটা স্ট্রাকচারের জন্য +1। এগুলি আলগোরিদিমিক মুদ্রার অন্য অর্ধেক।
স্পেনসার রথবুন

9

যদিও আপনার অ্যালগরিদমগুলি না জেনে আপনি কোনও ভাল প্রোগ্রামার হতে পারবেন না তবে প্রোগ্রামিং পেশার অন্যান্য দিকগুলি চিত্রের বাইরে রাখাই অন্যায়। উদাহরণস্বরূপ, কঠোর শৃঙ্খলা এবং আপনার মাতৃভাষার ভাল কমান্ড কমপক্ষে আপনার অ্যালগরিদমের জ্ঞান হিসাবে ভাল প্রোগ্রামার হওয়ার পক্ষে তাত্পর্যপূর্ণ। আপনার প্রাথমিক সরঞ্জামগুলি যেমন প্রোগ্রামিং ভাষা, উত্স নিয়ন্ত্রণ ব্যবস্থা, পরীক্ষার পরিবেশ, ইত্যাদি ইত্যাদি বোঝার গুরুত্বকেও হ্রাস করা উচিত নয়।

যাইহোক, যখন সাক্ষাত্কারের কথা আসে, তখন প্রোগ্রামার হিসাবে কাজ করার সাথে সম্পর্কিত আপনার অন্যান্য দক্ষতাগুলি মাপার চেয়ে অ্যালগোরিদমগুলি সম্পর্কে আপনার বোঝার পরিমাপ করা অনেক সহজ। সে কারণেই সাক্ষাত্কারকারীরা প্রায়শই অ্যালগরিদমগুলি সম্পর্কে জিজ্ঞাসা করতে মনোনিবেশ করেন এবং সাক্ষাত্কারের সময় আপনি কীভাবে তাদের ব্যাখ্যা করেন তাতে মনোযোগ দিন। এটি অন্যান্য বিষয়গুলি কম গুরুত্বপূর্ণ হওয়ার কারণে নয়, তবে সাক্ষাত্কারের জন্য বরাদ্দকৃত 30 মিনিটের মধ্যে এই অন্যান্য বিষয়গুলি নির্ধারণ করা কঠিন because


1
+1 নিখুঁত উত্তর! অ্যালগরিদম জ্ঞানের জন্য পরীক্ষা করা আরও সহজ।
maple_shaft

"আপনার অ্যালগরিদম" - আমি নিজেই শিখানো। কোথাও কোনও উত্স বা তালিকা রয়েছে যা জানায় যে এই সাধারণ অ্যালগরিদমগুলি প্রতিটি প্রোগ্রামারকে জানা উচিত? আমি তাদের মাধ্যমে পড়তে চাই। ধন্যবাদ!
ওমিনাস

2
@ ওমিনিস যদিও অ্যালগরিদমের "ভদ্রলোকের তালিকায়" কোনও সাধারণ isক্যমত্য না থাকলেও বেশিরভাগ ক্ষেত্রে এর মধ্যে অনুসন্ধানের বিষয়বস্তু, বাছাই করা, ডাটা স্ট্রাকচারের ফাঁকে ফাঁকে ফাঁকে থাকা ধারাবাহিকতা (লিঙ্কযুক্ত তালিকাগুলি, বাইনারি গাছগুলি, ইত্যাদি) এবং মূল বিষয়গুলি (মিস) অন্তর্ভুক্ত থাকবে পুনরাবৃত্তির অ্যাপ্লিকেশনগুলি (পুনরাবৃত্ত ফ্যাক্টরিয়াল, ফিবোনাচি ক্রম ইত্যাদি)
ডেসব্লিংকনলাইট

@ ওমিনিস - আমিও স্ব-শিক্ষিত কিন্তু আমার মনে হয় "আলগোরিদিমগুলির ভূমিকা" - সিএলআরএস ক্ষেত্রের সাথে পরিচিত হওয়ার একটি ভাল উপায়। স্কিয়েনার বই "দ্য অ্যালগরিদম ডিজাইনের ম্যানুয়াল "ও ভাল।
টড

5

হ্যাঁ, প্রোগ্রামিং বেশিরভাগই অ্যালগরিদম সম্পর্কে।

তবে আপনি যে ভাবনায় ভাবছেন তা নাও হতে পারে।

আমি ধারণাটি পেয়েছি যে আমরা সকলেই অ্যালগরিদমের বিভিন্ন সংজ্ঞা ব্যবহার করছি। সত্যি কথা বলতে কি, এই প্রশ্নের উত্তর দেওয়া শক্ত কারণ অ্যালগরিদম একটি অস্পষ্ট শব্দ term এই প্রশ্নের উত্তর দেওয়ার জন্য আমি উইকিপিডিয়াটির সংজ্ঞা ব্যবহার করব:

নিয়মের একটি সেট যা কার্যকরীতার ক্রমকে স্পষ্টভাবে সংজ্ঞায়িত করে।

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

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


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

4

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

অ্যালগরিদমগুলির একটি দৃ understanding় বোঝার প্রমাণ কী আপনার সম্ভাব্য নিয়োগকর্তার পক্ষে প্রমাণ দেয় যে আপনি একটি উপযুক্ত সমস্যা সমাধানকারী। এটি সত্যই কোনও ভাল কর্মচারীর একটি ভাল সূচক (আইএমও) নয় তবে কিছু নিয়োগকর্তা এটি স্ক্রিনিংয়ের জন্য ব্যবহার করেন। আপনি যদি এমন একটি পদের জন্য আবেদন করছেন যা স্নাতক ডিগ্রি প্রয়োজন আপনার কাছে অ্যালগোরিদমগুলিতে আরও কঠোর ভিত্তি স্থাপনের প্রত্যাশা করা হচ্ছে।

অনুশীলনে যা (আইএমও) প্রচুর পরিমাণে সহায়ক তা নির্দিষ্ট অ্যালগরিদমগুলি মুখস্থ করার জন্য নয় তবে কিছু অ্যালগরিদম কীভাবে কাজ করে তা বোঝার মাধ্যমে আপনার মনের পেছনে এই ছোট্ট নকশা রয়েছে যেখানে আপনি বলবেন "আমি এটি আগে দেখেছি" বা "আমি জানি আমি এটি আরও ভাল করতে পারে "যা আপনার সমস্যার সমাধান নিয়ে কিছুটা গবেষণা করবে।


গ্রেড শিক্ষার্থীদের জন্য নিয়োগের বার সম্পর্কে কথা বলার জন্য +1। কিছু সংস্থাগুলি আন্ডারগ্র্যাডের তুলনায় গ্রেড শিক্ষার্থীদের নিয়োগের সময় অনেক বেশি ফ্যাসিয়ার হয়। তবে তাদের কাছে ন্যায়সঙ্গত হওয়ার জন্য, গ্রেড শিক্ষার্থীদের আরও ভাল বেতন দেওয়া হয়, এবং সাধারণত অভ্যন্তরীণভাবে উচ্চ স্তরে নিয়োগ দেওয়া হয়।
ব্যবহারকারী 396060

1

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

এটি গণিতগুলির মতো নাও লাগতে পারে এবং আপনি প্রতিদিন যে কাজটি করতেন তা অনেকগুলি অ্যালগরিদমিক কাজ খুব সহজেই জিইউআই এবং একটি প্রোগ্রামের মধ্যে ডেটা প্রেরণের মতো জিনিস, তবে এটি অ্যালগোরিদম হিসাবেও গণনা করা হয়। একটি তালিকা বাক্সে একটি উপাদান োকানো একটি স্ট্যান্ডার্ড সন্নিবেশ অ্যালগরিদম যা পারফরম্যান্স এবং তালিকা কাঠামো ম্যানিপুলেশনগুলির মতো নিজস্ব সমস্যা নিয়ে আসে।


1

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

একটি স্বতন্ত্র প্রোগ্রামিং পরামর্শদাতা হিসাবে আমার অভিজ্ঞতায়, সাফল্য তিনটি জিনিস থেকে এসেছে 1. ক্লায়েন্টদের সাথে কার্যকরভাবে যোগাযোগ করা 2. লিখিত কোড যা কাজ করে। ৩. জটিলতা পরিচালনা করা

শুধু 1 এবং 2 নম্বর করা যথেষ্ট নয়। যদি কোডটি রক্ষণাবেক্ষণযোগ্য না হয় (প্রোগ্রামার (গুলি) ব্যতীত অন্য কেউ লিখেছেন) তবে এটি বিনষ্ট।

3 নম্বর হ'ল মাস্টার করার জন্য সবচেয়ে শক্ত প্রোগ্রামিং দক্ষতা। এর জন্য চিন্তাভাবনাটি আর্কিটেকচার, ডিজাইন এবং কোডিংয়ের মধ্যে রাখা দরকার। এর জন্য মাস্টারিং রিফ্যাক্টরিং দরকার। এটির জন্য SOLID / DRY নীতিগুলি বোঝার প্রয়োজন। যদি আমাকে এমন একটি প্রোগ্রামার নিয়োগ করতে হয় যিনি অ্যালগরিদমগুলিতে ইন্ট্রো পড়েছিলেন এবং নিজেকে প্রজ্ঞাগত প্রোগ্রামার পড়তে এবং নিজেকে একজন হওয়ার জন্য উত্সর্গ করেছিলেন এমন একজনকে নিজেকে দক্ষ করতে উত্সর্গীকৃত হয়ে থাকে তবে আমি প্রতিবারের মতো পরবর্তী সময়ে ভাড়া নেব। (এমন নয় যে তাদের পারস্পরিক একচেটিয়া করতে হবে)।


1

হ্যাঁ.

কম্পিউটার বিজ্ঞান বেশিরভাগই অ্যালগোরিদম (শতাংশ দ্বারা)।

না।

তবে তা কম্পিউটারের "বিজ্ঞান"। কম্পিউটার সায়েন্সের সর্বাধিক প্রচলিত অ্যাপ্লিকেশন হ'ল সফটওয়্যার ইঞ্জিনিয়ারিং। সফটওয়্যার ইঞ্জিনিয়ারিং মূলত অ্যালগরিদম নয়। এটি মূলত তৈরি করার শিল্প সম্পর্কে, নিখুঁততার সাধনা সম্পর্কে এবং এটি বর্তমানে বিদ্যমান সত্যিকারের মানুষের জীবনকে ইতিবাচকভাবে প্রভাবিত করার চারদিকে কেন্দ্রিক। যদিও কম্পিউটার সায়েন্স একই অনুপ্রেরণার কিছু ভাগ করে নিতে পারে, এটি সফটওয়্যার ইঞ্জিনিয়ারিং থেকে অনেক দূরের কথা cry

একটি বড় কম্পিউটার সায়েন্স ইউনিভার্সিটির একজন টেনিউড প্রফেসরকে জিজ্ঞাসা করুন প্রোগ্রামিং সম্পর্কে সবচেয়ে গুরুত্বপূর্ণ বিষয়টি কী, এবং তারা সম্ভবত আপনাকে "অ্যালগোরিদম এবং ডেটা স্ট্রাকচার" বলবে

একটি বড় সফ্টওয়্যার সংস্থার একজন সিনিয়র বিকাশকারীকে প্রোগ্রামিং সম্পর্কে বোঝার জন্য সবচেয়ে গুরুত্বপূর্ণ বিষয়টি কী তা জিজ্ঞাসা করুন এবং তারা সম্ভবত আপনাকে "গ্রাহকদের আনন্দিত করতে শেখা" বলে দেবে (এতে বোঝানো হয়েছে চতুর বোঝা, গ্রাহকের মতো চিন্তা করা, সময়মতো শিপিং এবং ক্রমাগত, কাজ করে এমন জিনিস তৈরি করা ইত্যাদি)

শব্দার্থবিজ্ঞানের মতো মনে হতে পারে তবে আমার বোঝার দিক থেকে অনুশীলন এবং তত্ত্বের ক্ষেত্রে দু'টিই আলাদা।


1

কম্পিউটার বিজ্ঞানের একটি বিষয়কে এর সবচেয়ে গুরুত্বপূর্ণ অংশ হিসাবে বেছে নিতে হলে আমি অ্যালগরিদম নয়, বিমূর্ততা বেছে নেব ।


1

কম্পিউটার সায়েন্সে আপনি যে ধারণাগুলি শিখেন সেগুলি কার্যকর না হওয়া অবধি কার্যকর হবে The সমস্যাটি মূল উদ্বেগের বিষয় যা সমাধান করা দরকার তাই অ্যালগরিদম কীভাবে সমস্যাটি সাধারণভাবে সমাধান হবে তার একটি সংক্ষিপ্ত পরিকল্পনা। সুতরাং এটি কম্পিউটার বিজ্ঞান বিশ্বে বড় উদ্বেগের বিষয়।

আমি মনে করি কম্পিউটার বিজ্ঞানের প্রায় প্রতিটি ক্ষেত্রেই অ্যালগরিদম প্রয়োজন আমাকে নীচে এই তালিকাটি দেখান নীচের তালিকায় বিভিন্ন কম্পিউটার বিজ্ঞানের ক্ষেত্রগুলি থাকবে এবং কোন অ্যালগরিদম তারা ব্যবহার করবে use

অটোমাটা

পাওয়ারসেট নির্মাণ। অ্যালগোরিদমকে ননডেটারিস্টেমিক অটোমেটনকে ডিটারমিনিস্টিক অটোমেটনে রূপান্তর করতে। টড-কক্সেটর অ্যালগরিদম। কোসেট উত্পাদন করার পদ্ধতি

কৃত্রিম বুদ্ধিমত্তা

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

কম্পিউটার ভিশন

সংক্ষিপ্তসার। একটি ছোট চিত্র দ্বারা একটি চিত্র বা ভিডিও উপস্থাপন করুন। একটি ইমেজ অবজেক্ট গণনা । সংযুক্ত-উপাদান লেবেলিং অ্যালগরিদম ব্যবহার করে প্রতিটি বস্তুকে প্রথমে লেবেল করে এবং তারপরে বস্তু গণনা করে। ও'ক্রোল অ্যালগরিদম। পোকামাকড় দৃষ্টিভঙ্গির গাণিতিক রূপান্তর থেকে, এই অ্যালগরিদম কীভাবে বস্তুগুলি এড়িয়ে চলা যায় তা মূল্যায়ন করে।

জেনেটিক আলগোরিদিম

তারা তিনটি অপারেটর ব্যবহার করে। নির্বাচন (সমাধান চয়ন করুন), প্রজনন (অন্যগুলি নির্মাণের জন্য চ্যুসেন সমাধান ব্যবহার করুন), প্রতিস্থাপন (আরও ভাল হলে সমাধান প্রতিস্থাপন করুন)।

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

নিউরাল নেটওয়ার্ক

হপফিল্ড নেট বারবার কৃত্রিম নিউরাল নেটওয়ার্ক যা বাইনারি থ্রেশহোল্ড ইউনিট সহ সামগ্রী-ঠিকানাযোগ্য মেমরি সিস্টেম হিসাবে পরিবেশন করে। তারা একটি স্থিতিশীল অবস্থায় রূপান্তরিত করে। Backpropagation। কৃত্রিম নিউরাল নেটওয়ার্ক প্রশিক্ষণের জন্য ব্যবহৃত তত্ত্বাবধানে শেখার কৌশল। স্ব-সংগঠিত মানচিত্র (কোহোনেন মানচিত্র)। নিউরাল নেটওয়ার্কগুলি প্রশিক্ষণের নমুনাগুলির নিম্ন মাত্রিক (2 ডি, 3 ডি) উপস্থাপনের জন্য আনসারভিজড লার্নিং ব্যবহার করে প্রশিক্ষণপ্রাপ্ত। উচ্চ-মাত্রিক ডেটা দেখার জন্য ভাল।

বায়োইনফরমেটিক্স

Needleman-Wunsch। প্রোটিন বা নিউক্লিওটাইড অনুক্রমের জন্য দুটি সিকোয়েন্সে বৈশ্বিক সারিবদ্ধতা সম্পাদন করে। স্মিথ-মাঝি। নিডলম্যান-উইংসের বিভিন্নতা।

সঙ্কোচন

ক্ষতিকারক সংকোচনের অ্যালগোরিদম

বুরোজ-হুইলারের রূপান্তর। ক্ষতিহীন সংকোচনের উন্নতির জন্য কার্যকর প্রসেসরিজিং। চুপসে। জিপ দ্বারা ব্যবহৃত ডেটা সংক্ষেপণ। ডেল্টা এনকোডিং। ক্রমবর্ধমান তথ্য ঘন ঘন ঘটে এমন ডেটা সংকোচনে সহায়তা করুন। বর্ধিত এনকোডিং। ডেল্টা এনকোডিংটি স্ট্রিংয়ের ক্রমগুলিতে প্রয়োগ করা হয়েছে। LZW। (Lempel-Ziv-ওয়েলশ)। LZ78 এর উত্তরসূরী। সংকোচনের জন্য ডেটা থেকে অনুবাদ টেবিল তৈরি করে। জিআইএফ গ্রাফিকাল ফর্ম্যাট দ্বারা ব্যবহৃত হয়। LZ77 এবং 78. আরও এলজেড পরিবর্তনের ভিত্তি (এলজেডব্লিউ, এলজেডএসএস, ...)। তারা উভয় অভিধান কোডার। LZMA। লেম্পেল-জিভ-মার্কভ চেইন-অ্যালগোরিদমের জন্য সংক্ষিপ্ত। LZO। গতিতে ফোকাস করা ডেটা সংক্ষেপণ অ্যালগরিদম। পিপিএম(আংশিক মিলের দ্বারা ভবিষ্যদ্বাণী)। প্রসঙ্গ মডেলিং এবং পূর্বাভাসের ভিত্তিতে অভিযোজিত পরিসংখ্যান সংক্রান্ত ডেটা সংক্ষেপণ কৌশল technique শ্যানন-ফানো কোডিং। প্রতীকগুলির সেট এবং তাদের সম্ভাব্যতার উপর ভিত্তি করে উপসর্গ কোডগুলি তৈরি করে। কাটা বাইনারি। সীমাবদ্ধ বর্ণমালা সহ অভিন্ন সম্ভাব্যতা বিতরণের জন্য সাধারণত একটি এনট্রপি এনকোডিং ব্যবহৃত হয়। বাইনারি এনকোডিং উন্নত করুন। রান-দৈর্ঘ্যের এনকোডিং। প্রাথমিক সংক্ষেপণ যা ঘটনার সংখ্যার দ্বারা একই কোডের ক্রমকে প্রতিস্থাপন করে। অনুসরণ। একটি স্ট্রিংয়ের বর্ধিত ব্যাকরণ অনুমিতি। EZW (এমবেডেড Zerotree ক্ষুদ্র তরঙ্গ)। ক্রমবর্ধমান নির্ভুলতার সাথে একটি চিত্রকে কিছুটা স্ট্রিমে সংকুচিত করতে প্রগতিশীল এনকোডিং। আরও ভাল ফলাফলের সাথে ক্ষতির সংকোচন হতে পারে।

এনট্রপি এনকোডিং কোডিং স্কিম যা প্রতীকগুলির কোডগুলি নির্ধারিত করে যাতে প্রতীকগুলির সম্ভাবনার সাথে কোডের দৈর্ঘ্য মেলে।

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

লসী কম্প্রেশন অ্যালগোরিদম

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

ক্রিপ্টোগ্রাফি

গোপন কী (প্রতিসম এনক্রিপশন)

ডিক্রিপশন এবং এনক্রিপশন উভয়ের জন্য একটি গোপন কী (বা সরাসরি সম্পর্কিত কীগুলির একটি জুড়ি) ব্যবহার করুন।

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

সর্বজনীন কী (অসমমিতি এনক্রিপশন)

পাবলিক কী এবং প্রাইভেট কী হিসাবে মনোনীত একজোড়া কী ব্যবহার করুন। সর্বজনীন কী বার্তাটি এনক্রিপ্ট করে, কেবল ব্যক্তিগত কী এটি ডিক্রিপ্ট করার অনুমতি দেয়।

ডিএসএ (ডিজিটাল সিগনেচার অ্যালগোরিদম)। প্রাইম এবং এলোমেলো সংখ্যার সাথে কী তৈরি করুন। মার্কিন এজেন্সি দ্বারা ব্যবহৃত হয়, এবং এখন পাবলিক ডোমেন। ElGamal। জিএনইউ প্রাইভেসি গার্ড সফ্টওয়্যার, পিজিপি এবং অন্যান্য ক্রিপ্টোগ্রাফিক সিস্টেম দ্বারা ব্যবহৃত ডিফি-হেলম্যানের উপর ভিত্তি করে। আরএসএ (রিভেস্ট, শামির, অ্যাডলম্যান)। বৈদ্যুতিন বাণিজ্য প্রোটোকলগুলিতে ব্যাপকভাবে ব্যবহৃত হয় used প্রাথমিক সংখ্যা ব্যবহার করুন। ডিফি-হেলম্যান (মের্কেল) কী এক্সচেঞ্জ (বা এক্সফোনেনশিয়াল কী এক্সচেঞ্জ)। একটি সুরক্ষিত যোগাযোগ চ্যানেলের উপর গোপন ভাগ করার পদ্ধতি এবং অ্যালগরিদম। আরএসএ দ্বারা ব্যবহৃত। NTRUEncrypt। বহুভিত্তির রিংগুলি কনভোলশন গুণকে ব্যবহার করুন।

বার্তা হজম ফাংশন

একটি বার্তা ডাইজেস্ট হ্যাশ ফাংশন দ্বারা প্রক্রিয়াজাতকরণের কোনও স্ট্রিং বা কোনও দৈর্ঘ্যের ডেটার এনক্রিপশনের ফলে একটি কোড।

MD5। সিডি বা ডিভিডি-র আইএসও চিত্রগুলি পরীক্ষা করার জন্য ব্যবহৃত হয়। রিপেমড (RACE ইন্টিগ্রিটি প্রিমিটিভস মূল্যায়ন বার্তা ডাইজেস্ট)। MD4 এর নীতিগুলির ভিত্তিতে এবং SHA-1 এর অনুরূপ। SHA-1 (সুরক্ষিত হ্যাশ অ্যালগরিদম 1)। সম্পর্কিত ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনগুলির SHA সেটগুলির সর্বাধিক ব্যবহৃত হয়। এনএসএ এজেন্সি ডিজাইন করেছিল। HMAC। কীড-হ্যাশ বার্তা প্রমাণীকরণ। বাঘ (টিটিএইচ)। সাধারণত টাইগার গাছের হ্যাশগুলিতে ব্যবহৃত হয়।

সিউডো-এলোমেলো সংখ্যা ব্যবহার করে ক্রিপ্টোগ্রাফিক দেখুন। র্যান্ডম সংখ্যা জেনারেটর

ক্রিপ্টোগ্রাফি কৌশল

গোপন ভাগাভাগি, গোপন বিভাজন, কী বিভাজন, এম এর এন অ্যালগরিদম।

শামিরের গোপন ভাগাভাগি করার পরিকল্পনা। এটি বহুবর্ষীয় প্রজননের উপর ভিত্তি করে একটি সূত্র। ব্লাকলির গোপন ভাগাভাগি করার পরিকল্পনা। প্রকৃতিতে জ্যামিতিক, গোপনীয়টি একটি মি-ডাইমেনশনাল স্পেসের একটি বিন্দু।

অন্যান্য কৌশল এবং ডিক্রিপশন

সাবসেট যোগফল। পূর্ণসংখ্যার একটি সেট দেওয়া, কোনও উপসেট কি সমান শূন্য হয়? ক্রিপ্টোগ্রাফিতে ব্যবহৃত হয়। শোরের অ্যালগরিদম। কোয়ান্টাম অ্যালগরিদম আরএসএর মতো অ্যাসিমেট্রিক ফাংশনের উপর ভিত্তি করে একটি কোড ডিক্রিপ্ট করতে সক্ষম।

জ্যামিতি

উপহার মোড়ানো. বিন্দুগুলির সেটগুলির উত্তল হাল নির্ধারণ করা। গিলবার্ট-জনসন-কেরথি দূরত্ব। দুটি উত্তল আকারের মধ্যে ক্ষুদ্রতম দূরত্ব নির্ধারণ করা। গ্রাহাম স্ক্যান বিমানের বিন্দুগুলির সেটগুলির উত্তল হাল নির্ধারণ করা। লাইন বিভাগের ছেদ। সুইপ লাইন অ্যালগোরিদমের সাথে লাইনগুলি ছেদ করে কিনা তা সন্ধান করছেন। বহুভুজের মধ্যে পয়েন্ট। প্রদত্ত বিন্দু প্রদত্তের মধ্যে রয়েছে কিনা তা পরীক্ষা করে। রে / প্লেন ছেদ * লাইন / ত্রিভুজ ছেদ। * রে / প্লেন ছেদ এর বিশেষ ক্ষেত্রে। অন্তর্নিহিত উপরিভাগের বহুভুক্তকরণ। বহুভুজ উপস্থাপনা সহ প্রায় একটি অন্তর্নিহিত পৃষ্ঠ। Triangulation।কোণ থেকে অন্য পয়েন্টগুলির একটি বিন্দুর দূরত্বকে মূল্যায়নের পদ্ধতি, যার দূরত্বটি জানা যায় known

গ্রাফ 3 ডি সারফেস ট্র্যাকার প্রযুক্তি। কোনও ভিডিওতে দেওয়ালে ছবি যুক্ত করার প্রক্রিয়াটি যখন লুকানো পৃষ্ঠগুলি বিবেচনায় নেওয়া হয়। বেলম্যান-ফোর্ড। ওজনযুক্ত গ্রাফের সংক্ষিপ্ততম পাথগুলি গণনা করুন (যেখানে কিছু প্রান্তের ওজন নেতিবাচক হতে পারে)। ডিজকস্ট্রার অ্যালগরিদম। অ-নেতিবাচক প্রান্ত ওজন সহ গ্রাফের সবচেয়ে সংক্ষিপ্ত পাথগুলি গণনা করে। খাঁটি করার পদ্ধতি। একটি অ্যালগোরিদম যা গ্রাফের স্থানীয়ভাবে সংক্ষিপ্ততম পাথগুলিকে গণনা করে। ফ্লয়েড-Warshall। ওজনযুক্ত, নির্দেশিত গ্রাফের মধ্যে সমস্ত জোড়ের সংক্ষিপ্ত পথের সমস্যার সমাধান করে। ফ্লয়েডের চক্র সন্ধান করা। পুনরাবৃত্তিতে চক্র সন্ধান করে। জনসন। সমস্ত জোড় বিরল ওজনযুক্ত নির্দেশিত গ্রাফের মধ্যে সংক্ষিপ্ততম পথ অ্যালগরিদম। Kruskal।একটি গ্রাফের জন্য সর্বনিম্ন বিস্তৃত গাছ সন্ধান করে। পরিপাটি আছে। একটি গ্রাফের জন্য সর্বনিম্ন বিস্তৃত গাছ সন্ধান করে। একে ডিজেপি, জার্নেক বা প্রাইম- জার্নেক অ্যালগরিদমও বলা হয়। * বুরুভকা। * গ্রাফের জন্য সর্বনিম্ন ছড়িয়ে পড়া গাছের সন্ধান করে। ফোর্ড-Fulkerson। গ্রাফের সর্বাধিক প্রবাহকে গণনা করে। আবিস্কার, ফীড আবিষ্কার-Karp। ফোর্ড-ফুলকারসনের বাস্তবায়ন। ননব্লকিং ন্যূনতম স্প্যানিং স্যুইচ। টেলিফোন এক্সচেঞ্জের জন্য। Woodhouse-আকস্মাত্। একটি গ্রাফের জন্য সর্বনিম্ন বিস্তৃত গাছ সন্ধান করে। বসন্ত ভিত্তিক গ্রাফ অঙ্কনের জন্য অ্যালগরিদম। হাঙ্গেরীয়। একটি নিখুঁত মিল খুঁজে পাওয়ার জন্য অ্যালগরিদম। রঙিন অ্যালগরিদম গ্রাফ রঙিন অ্যালগরিদম। নিকটতম প্রতিবেশী।নিকটতম প্রতিবেশী খুঁজুন। টপোলজিকাল সাজান। একটি নির্দেশিত অ্যাসাইক্লিক গ্রাফটি এমনভাবে বাছাই করুন যাতে প্রতিটি নোডের সমস্ত নোডের আগে যেদিকে প্রান্ত থাকে (দিকনির্দেশ অনুসারে) আসে। টারজানের অফ লাইন সর্বনিম্ন সাধারণ পূর্বপুরুষদের অ্যালগরিদম। কোনও গাছে জোড়া নোডের জন্য সর্বনিম্ন সাধারণ পূর্বপুরুষদের গণনা করুন।

গ্রাফিক্স

ব্রেনহ্যামের লাইন অ্যালগরিদম। 2 নির্দিষ্ট পয়েন্টের মধ্যে একটি সরল রেখায় প্লট করতে সিদ্ধান্ত পরিবর্তনগুলি ব্যবহার করে। ল্যান্ডস্কেপ একটি 3 ডি দৃশ্যের আঁকুন। * ডিডিএ লাইন অ্যালগরিদম। * 2 নির্দিষ্ট পয়েন্টের মধ্যে একটি সরল রেখা প্লট করতে ভাসমান-পয়েন্ট গণিত ব্যবহার করে। বন্যা ভরাট। সংযুক্ত অঞ্চলটি একটি রঙ দিয়ে পূর্ণ করে। চিত্র পুনরুদ্ধার। ফটো পুনরুদ্ধার করুন, চিত্রগুলি উন্নত করুন। জিয়াওলিন উয়ের লাইন অ্যালগরিদম। লাইন antialiasing। পেইন্টারের অ্যালগরিদম। ত্রি-মাত্রিক দৃশ্যের দৃশ্যমান অংশগুলি সনাক্ত করে। রে ট্রেসিং বাস্তব চিত্র চিত্র উপস্থাপনা। ফং শেডিং একটি আলোকসজ্জা মডেল এবং 3 ডি কম্পিউটার গ্রাফিক্সে একটি ইন্টারপোলেশন পদ্ধতি। গৌরুদ শেডিং।3 ডি অবজেক্টের পৃষ্ঠ জুড়ে আলো এবং রঙের পৃথক প্রভাবগুলি সিমুলেট করুন। স্ক্যানলাইন রেন্ডারিং। একটি কাল্পনিক লাইন সরিয়ে একটি চিত্র তৈরি করে। বৈশ্বিক আলোকসজ্জা। অন্যান্য বস্তু থেকে সরাসরি আলোকসজ্জা এবং প্রতিচ্ছবি বিবেচনা করে। ক্ষেপক। ডিজিটাল জুমের মতো নতুন ডেটা পয়েন্টগুলি তৈরি করা। Resynthesizer। কোনও ফটোতে কোনও বস্তু সরান এবং ফটোশপ এবং গিম্প দ্বারা ব্যবহৃত ব্যাকগ্রাউন্ডটি পুনর্নির্মাণ করুন। পুনরায় সংশ্লেষকারী টিউটোরিয়াল। স্লোপ-ইন্টারসেপ্ট অ্যালগরিদম। এটি একটি লাইন আঁকার জন্য opeাল-আটকানো সূত্রের একটি বাস্তবায়ন। স্প্লাইন বিরতি। রঞ্জের ঘটনার সাথে ত্রুটি হ্রাস করে। 3 ডি সারফেস ট্র্যাকার প্রযুক্তি। একটি ভিডিয়োতে ​​দেয়ালগুলিতে চিত্র বা বিডিয়ো যুক্ত করা, গোপন পৃষ্ঠগুলি বিবেচনায় নেওয়া হচ্ছে।

তালিকা, অ্যারে এবং গাছ

অনুসন্ধানের

অভিধান অনুসন্ধান। ভবিষ্যদ্বাণীপূর্ণ অনুসন্ধান দেখুন। নির্বাচন অ্যালগরিদম। একটি তালিকার মধ্যে kth বৃহত্তম আইটেম সন্ধান করে। বাইনারি অনুসন্ধান অ্যালগরিদম। বাছাই করা তালিকায় একটি আইটেম চিহ্নিত করে। প্রথম প্রস্থে অনুসন্ধান। একটি গ্রাফ স্তর স্তর দ্বারা চিহ্নিত করে es গভীরতা প্রথম অনুসন্ধান। শাখা দ্বারা একটি গ্রাফ শাখা traverses। সেরা-প্রথম অনুসন্ধান। অগ্রাধিকার সারি ব্যবহার করে সম্ভাব্য গুরুত্বের ক্রমটিতে একটি গ্রাফকে আবিষ্কার করে। একটি গাছ অনুসন্ধান। * সেরা-প্রথম অনুসন্ধানের বিশেষ কেস যা গতি উন্নত করতে হিউরিস্টিক্স ব্যবহার করে। ইউনিফর্ম ব্যয় অনুসন্ধান। একটি বৃক্ষ অনুসন্ধান যা সর্বনিম্ন ব্যয়ের রুট খুঁজে পায় যেখানে ব্যয় আলাদা হয়। ভবিষ্যদ্বাণীপূর্ণ অনুসন্ধান।বাইনারি অনুসন্ধানের মতো সন্ধানের উচ্চ এবং নিম্ন মানের বিপরীতে অনুসন্ধানের পরিমাপের পরিমাপের কারণগুলির মধ্যে রয়েছে। হ্যাশ টেবিল. একটি রৈখিক সময়ে পুনরুদ্ধার করতে, একটি অরসেটেড সংগ্রহে আইটেমগুলির সাথে কীগুলি যুক্ত করুন। বিভক্ত অনুসন্ধান। ভবিষ্যদ্বাণীপূর্ণ অনুসন্ধান দেখুন।

শ্রেণীবিভাজন

বাইনারি ট্রি বাছাই। বাইনারি গাছের বাছাই করুন, ইনক্রিমেন্টাল সন্নিবেশ সাজানোর অনুরূপ। Bogosort। একটি ডেস্ক কার্ডের অকার্যকর এলোমেলো বাছাই। বুদ্বুদ সাজান। প্রতিটি জোড় সূচকের জন্য, অর্ডার না থাকলে আইটেমগুলিকে অদলবদল করুন। বালতি বাছাই। বালতিতে একটি তালিকা বিভক্ত করুন এবং তাদের পৃথকভাবে বাছাই করুন। পায়রাহোল বাছাই সাধারণকরণ। ককটেল বাছাই (বা দ্বি নির্দেশমূলক বুদ্বুদ, শেকার, রিপল, শাটল, হ্যাপি আওয়ার বাছাই)। বুদ্বুদ সাজানোর বিভিন্নতা যা উভয় দিকেই বাছাই করে প্রতিটি তালিকা দিয়ে যায় through চিরুনি বাছাই। বুদ্বুদ সাজানোর কার্যকরী প্রকরণ যা "কচ্ছপ", তালিকার শেষের নিকটবর্তী ছোট মানগুলিকে সরিয়ে দেয় এবং ফাঁকগুলি বর্ধমান মান ব্যবহার করে। গণনা বাছাইএটি এই দৈর্ঘ্যের একটি অ্যারে বি তৈরি করতে তালিকার এ তালিকার সংখ্যার ব্যাপ্তি ব্যবহার করে। এ-তে থাকা কতগুলি উপাদানগুলির i এর চেয়ে কম মান আছে তা গণনা করতে B তে সূচকগুলি ব্যবহৃত হয়। জিনোম সাজান। সন্নিবেশ বাছাইয়ের অনুরূপ যে কোনও উপাদানকে তার যথাযথ স্থানে নিয়ে যাওয়া বুদ্বুদ সাজানোর মতো অদলবদল দ্বারা সম্পন্ন হয়। Heapsort। তালিকাটিকে একটি গাদা রূপান্তর করুন, গাদা থেকে বৃহত্তম উপাদানটি সরিয়ে এবং তালিকার শেষে যুক্ত করুন। সন্নিবেশ সাজান। বাছাই করা তালিকার বর্তমান আইটেমটি কোথায় তা নির্ধারণ করুন এবং এটি সেখানে sertোকান। Introsort। বা অন্তর্মুখী বাছাই করুন। এটি কুইকোর্টে শুরু হয় এবং নির্দিষ্ট পুনরাবৃত্তির স্তরে হিপসোর্টে চলে যায়। বাছাই মার্জ।তালিকার প্রথম এবং দ্বিতীয়ার্ধটি আলাদাভাবে বাছাই করুন, তার পরে সাজানো তালিকাগুলি মার্জ করুন। প্যানকেক সাজান। একটি অনুক্রমের কিছু উপসর্গের বিপরীত উপাদান। পায়রাহোল বাছাই সাজানোর জন্য একটি অ্যারের সমস্ত উপাদান সহ একটি খালি অ্যারে পূরণ করুন। পোস্টম্যান বাছাই। ডাকঘর দ্বারা ব্যবহৃত বালতি বাছাইয়ের স্তরক্রমিক বৈকল্পিক var Quicksort। প্রথম তালিকার সমস্ত আইটেম দ্বিতীয় তালিকার সমস্ত আইটেমের আগে উপস্থিত তালিকাকে দুটিতে ভাগ করুন; তারপরে দুটি তালিকাগুলি বাছাই করুন। প্রায়শই পছন্দ পদ্ধতি। রেডিক্স বাছাই। আইটেমগুলির সাথে সম্পর্কিত কীগুলি বা অঙ্কগুলি প্রক্রিয়াকরণের মাধ্যমে পূর্ণসংখ্যাকে সাজান। বাছাই বাছাই। অবশিষ্ট উপাদানগুলির মধ্যে সবচেয়ে ছোটটি চয়ন করুন, এটি সাজানো তালিকার শেষে যুক্ত করুন। শেল সাজানমানগুলির মধ্যে ব্যবধানগুলির সাথে সন্নিবেশ সাজানোর উন্নতি করে। Smoothsort। হিপসোর্ট দেখুন। স্টোকাস্টিক বাছাই বোগোসর্ট দেখুন।

এবং আরো অনেক...


0

আপনি প্রশ্ন শিরোনামে দুটি প্রশ্ন জিজ্ঞাসা করেছেন, তাই আমি তাদের উভয়ের উত্তর দেব।

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

না, প্রোগ্রামিং সমস্ত অ্যালগরিদম সম্পর্কে নয়। প্রোগ্রামিং স্পেসিফিকেশন গ্রহণ এবং তাদের কোড রূপান্তর সম্পর্কে যা কার্যকর করার জন্য সংকলিত হতে পারে।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.