Added explanations in Bengali language
parent
5d18a66cd8
commit
dfc7157d7b
|
@ -19,6 +19,7 @@ Data structure and Algorithm (DSA)
|
||||||
- [Turkish](./docs/tr)
|
- [Turkish](./docs/tr)
|
||||||
- [繁體中文](./docs/zh-tw)
|
- [繁體中文](./docs/zh-tw)
|
||||||
- [日本語](./docs/ja)
|
- [日本語](./docs/ja)
|
||||||
|
- [বাংলা](./docs/bn)
|
||||||
|
|
||||||
## Contribution Guidelines
|
## Contribution Guidelines
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,143 @@
|
||||||
|
[![.NET](https://github.com/MakeContributions/DSA/actions/workflows/dotnet.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/dotnet.yml)
|
||||||
|
[![C++](https://github.com/MakeContributions/DSA/actions/workflows/cpp.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/cpp.yml)
|
||||||
|
[![Go](https://github.com/MakeContributions/DSA/actions/workflows/go.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/go.yml)
|
||||||
|
[![Node.js CI](https://github.com/MakeContributions/DSA/actions/workflows/node.js.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/node.js.yml)
|
||||||
|
[![Python](https://github.com/MakeContributions/DSA/actions/workflows/python.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/python.yml)
|
||||||
|
[![codespell](https://github.com/MakeContributions/DSA/actions/workflows/codespell.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/codespell.yml)
|
||||||
|
[![CodeQL](https://github.com/MakeContributions/DSA/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/MakeContributions/DSA/actions/workflows/codeql-analysis.yml)
|
||||||
|
[![Discord](https://img.shields.io/discord/863049619734790185?color=7389D8&logo=discord&logoColor=ffffff&label=&labelColor=6A7EC2)](https://discord.gg/ydWxdqbTyK)
|
||||||
|
|
||||||
|
# Data Structures and Algorithm
|
||||||
|
|
||||||
|
Data structure and Algorithm (DSA)
|
||||||
|
|
||||||
|
## Explanations
|
||||||
|
|
||||||
|
- [English](./docs/en)
|
||||||
|
- [Español](./docs/es)
|
||||||
|
- [Português](./docs/pt)
|
||||||
|
- [Turkish](./docs/tr)
|
||||||
|
- [繁體中文](./docs/zh-tw)
|
||||||
|
- [日本語](./docs/ja)
|
||||||
|
|
||||||
|
## Contribution Guidelines
|
||||||
|
|
||||||
|
### 1. Contribution Specifications
|
||||||
|
|
||||||
|
The problem being contributed must either be a simple **file** (**Eg.** [`kruskal-algorithm.cpp`](./algorithms/CPlusPlus/Graphs/kruskal-algorithm.cpp), [`linear-search.java`](./algorithms/Java/searching/linear-search.java)) or a more complex **directory** ([`palindrome/`](./algorithms/Rust/strings/palindrome)). This is a unit `problem`.
|
||||||
|
|
||||||
|
The directory tree has the following convention of `algorithms/{language}/{category}/{problem}`, where `{language}` represents the language code of the problem (**Eg.** `CPlusPlus` for C++, `CSharp` for C# etc.), `{category}` is the topic or category of the problem being contributed (**Eg.** `strings`, `sorting`, `linked-lists` etc.), and `{problem}` is a conforming name to the problem (**Eg.** `linear-search.cpp`, `palindrome`, `queue-linked-list.cpp` etc.)
|
||||||
|
|
||||||
|
A unit `problem` must conform to the following specifications:
|
||||||
|
|
||||||
|
- The name should be in lowercase. (**Eg.** `palindrome/`, `binary-search.cpp` etc.).
|
||||||
|
- Each word must be separated by a **dash** or a **hyphen** (`-`).
|
||||||
|
|
||||||
|
**If you have a problem that belongs to a new _topic_ or _category_ than one which are present:**
|
||||||
|
|
||||||
|
1. Create a new folder and an index for it inside (a readme, `README.md` file).
|
||||||
|
2. To each new index file, write the readme with your `problem` in it ([Markdown Documentation](https://guides.github.com/features/mastering-markdown/)).
|
||||||
|
3. The folder name can also only contain **lowercase characters** and **dashes** or **hyphens** (`-`) (Eg. `strings` `sorting` etc.)
|
||||||
|
|
||||||
|
#### Simple (File) Contributions
|
||||||
|
|
||||||
|
The file should conform to the `problem` specification, and the extension (**Eg.** `linear-search.java`, `kruskal-algorithm.cpp`, `count-inversions.js` etc.)
|
||||||
|
|
||||||
|
#### Project/Folder-based Contributions
|
||||||
|
|
||||||
|
The project and folder-based contributions have a bit more stricter contribution contribution specifications.
|
||||||
|
|
||||||
|
The folder should conform to the `problem` specification, along with the following specifications
|
||||||
|
|
||||||
|
**Folder Structure**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
problem-name\
|
||||||
|
| - .gitignore
|
||||||
|
| - README.md
|
||||||
|
| - Makefile # or the specific specification/requirements/configuration file
|
||||||
|
| - src\
|
||||||
|
| - main.ext
|
||||||
|
```
|
||||||
|
|
||||||
|
#### `README.md` Specification / Template
|
||||||
|
|
||||||
|
````markdown
|
||||||
|
# <Title of the Problem>
|
||||||
|
|
||||||
|
< description of the problem >
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- prerequisite library or package
|
||||||
|
- [prerequisite library](https://www.example.com/link-to-official-library)
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
- instructions to run the project
|
||||||
|
- < Simple and reproducible commands to execute the project >
|
||||||
|
```bash
|
||||||
|
make # or 'cargo run', or 'dotnet run' or 'mvn exec:java' etc.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Test Cases & Output < if exists>
|
||||||
|
|
||||||
|
< If you can provide test cases, describe it here, else remove this section >
|
||||||
|
````
|
||||||
|
|
||||||
|
#### `.gitignore` File
|
||||||
|
|
||||||
|
```gitignore
|
||||||
|
# add all output files and build files to be excluded from git tracking
|
||||||
|
main # executable file also must have the project name
|
||||||
|
target/ # the build file, for example for rust
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Build File / Specification File / Configuration File
|
||||||
|
|
||||||
|
It can be any of the following ones
|
||||||
|
|
||||||
|
- **C/C++**: `Makefile`
|
||||||
|
- **Python**: `requirements.txt`
|
||||||
|
- **JavaScript**: `package.json` and `package-lock.json`
|
||||||
|
- **Rust**: `Cargo.toml` and `Cargo.lock`
|
||||||
|
- **Go**: `go.mod`
|
||||||
|
|
||||||
|
#### Source Code File
|
||||||
|
|
||||||
|
The source code files, should either be in `src/` folder (**Eg.** `src/main.cpp` or `src/main.js`) or the root folder (**Eg.** `palindrome.go` or `App.java`) where `ext` is the file extension for the specific programming language.
|
||||||
|
|
||||||
|
Again, the source codes must conform to a valid file structure convention that the programming language enforces.
|
||||||
|
|
||||||
|
### 2. Naming Convention
|
||||||
|
|
||||||
|
The programming should keep the naming convention rule of each programming language.
|
||||||
|
|
||||||
|
### Other topic
|
||||||
|
|
||||||
|
- [First-time contribution](CONTRIBUTING.md)
|
||||||
|
|
||||||
|
## Reviewers
|
||||||
|
|
||||||
|
| Programming Language | Users |
|
||||||
|
| -------------------- | ----------------------------------------------------------- |
|
||||||
|
| C or C++ | @Arsenic-ATG, @UG-SEP, @aayushjain7, @Ashborn-SM, @Ashad001 |
|
||||||
|
| Java | @TawfikYasser, @aayushjain7, @mohitchakraverty |
|
||||||
|
| C# | @ming-tsai, @Waqar-107 |
|
||||||
|
| Go | @ayo-ajayi |
|
||||||
|
| Python | @Arsenic-ATG, @sridhar-5 |
|
||||||
|
| JavaScript | @ming-tsai |
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
|
||||||
|
<a href="https://github.com/MakeContributions/DSA/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=MakeContributions/DSA" />
|
||||||
|
</a>
|
||||||
|
|
||||||
|
## Open Graph
|
||||||
|
|
||||||
|
<img src="https://opengraph.github.com/3b128f0e88464a82a37f2daefd7d594c6f41a3c22b3bf94c0c030135039b5dd7/MakeContributions/DSA" />
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](./LICENSE)
|
|
@ -0,0 +1,27 @@
|
||||||
|
# অ্যালগরিদমের নাম
|
||||||
|
|
||||||
|
অ্যালগরিদমের একটি সংক্ষিপ্ত বিবরণ লিখুন যেমন:
|
||||||
|
১) সময়ের জটিলতা
|
||||||
|
২) স্থান জটিলতা
|
||||||
|
৩) অ্যাপ্লিকেশন
|
||||||
|
৪) প্রতিষ্ঠাতার নাম
|
||||||
|
৫) ইত্যাদি...
|
||||||
|
|
||||||
|
## ধাপ
|
||||||
|
অ্যালগরিদমটি পরিষ্কার, সহজ এবং বোধগম্য ধাপে বর্ণনা করুন।
|
||||||
|
|
||||||
|
## উদাহরণ
|
||||||
|
নমুনা ইনপুট ডেটা সহ অ্যালগরিদম ট্রেস করুন।
|
||||||
|
|
||||||
|
## বাস্তবায়ন
|
||||||
|
|
||||||
|
প্রোগ্রামিং ভাষায় তাদের বাস্তবায়নের লিঙ্ক।
|
||||||
|
দ্রষ্টব্য: লিঙ্কটি শুধুমাত্র অ্যালগরিদম ফোল্ডারের মধ্যে থাকা উচিত।
|
||||||
|
|
||||||
|
## ভিডিও URL
|
||||||
|
|
||||||
|
অ্যালগরিদম ব্যাখ্যা করে এমন একটি ভিডিওর URL সংযুক্ত করুন৷
|
||||||
|
|
||||||
|
## অন্যান্য
|
||||||
|
|
||||||
|
অন্য কোন তথ্য সবসময় স্বাগত জানাই এবং এই বিভাগে অন্তর্ভুক্ত করা উচিত।
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Algorithm Name
|
||||||
|
|
||||||
|
Write a short description of the algorithm like:
|
||||||
|
1. Time Complexity
|
||||||
|
2. Space Complexity
|
||||||
|
3. Applications
|
||||||
|
4. Founder's Name
|
||||||
|
5. etc...
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
Describe the algorithm in clear, simple, and understandable steps.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
Trace the algorithm with sample input data.
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
Links to their implementation in programming languages.
|
||||||
|
NOTE: The link should be within the algorithms folder only.
|
||||||
|
|
||||||
|
## Video URL
|
||||||
|
|
||||||
|
Attach a URL of a video that explains the algorithm.
|
||||||
|
|
||||||
|
## Others
|
||||||
|
|
||||||
|
Any other information is always welcome and should be included in this section.
|
|
@ -0,0 +1,9 @@
|
||||||
|
# অ্যালগরিদম
|
||||||
|
|
||||||
|
## স্ট্রিং
|
||||||
|
|
||||||
|
- [প্যালিনড্রোম](./Strings/Palindrome.md)
|
||||||
|
|
||||||
|
## অন্যান্য
|
||||||
|
|
||||||
|
[কিভাবে নতুন অ্যালগরিদম ডকুমেন্টেশন যোগ করতে হয়?](./CONTRIBUTING.md)
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Algorithms
|
||||||
|
|
||||||
|
## Lists
|
||||||
|
- [Singly linked list](./Lists/singly-linked-list.md)
|
||||||
|
- [Doubly linked list](./Lists/doubly-linked-list.md)
|
||||||
|
|
||||||
|
## Sorting
|
||||||
|
|
||||||
|
- [Bubble Sort](./Sorting/Bubble-Sort.md)
|
||||||
|
- [Merge Sort](./Sorting/Merge-Sort.md)
|
||||||
|
- [Selection Sort](./Sorting/Selection-Sort.md)
|
||||||
|
- [Insertion Sort](./Sorting/Insertion-Sort.md)
|
||||||
|
- [Heap Sort](./Sorting/Heap-Sort.md)
|
||||||
|
- [Quick Sort](./Sorting/Quick-Sort.md)
|
||||||
|
- [Cycle Sort](./Sorting/Cycle-Sort.md)
|
||||||
|
|
||||||
|
## Strings
|
||||||
|
|
||||||
|
- [Palindrome](./Strings/Palindrome.md)
|
||||||
|
|
||||||
|
## Searching
|
||||||
|
|
||||||
|
- [Binary Search](./Searching/Binary-Search.MD)
|
||||||
|
- [Linear Search](./Searching/Linear-Search.md)
|
||||||
|
|
||||||
|
## Others
|
||||||
|
|
||||||
|
[How to add new algorithm documentation?](./CONTRIBUTING.md)
|
|
@ -0,0 +1,36 @@
|
||||||
|
# প্যালিন্ড্রোম
|
||||||
|
প্যালিন্ড্রোম হল একটি শব্দ, শব্দগুচ্ছ, সংখ্যা বা শব্দের ক্রম যা সামনের মতো পিছনের দিকে পড়ে। শব্দ বা অক্ষরের মধ্যে বিরাম চিহ্ন এবং স্পেস অনুমোদিত।
|
||||||
|
## ধাপ
|
||||||
|
১) সমস্ত বিরাম চিহ্ন এবং হোয়াইটস্পেস মুছে এবং সমস্ত অক্ষরকে ছোট হাতের অক্ষরে রূপান্তর করে স্ট্রিংটি পরিষ্কার করুন।
|
||||||
|
২) পরিষ্কার স্ট্রিং বিপরীত.
|
||||||
|
৩) যদি পরিষ্কার স্ট্রিং বিপরীত স্ট্রিং এর মত হয় তাহলে আমাদের একটি প্যালিনড্রোম আছে।
|
||||||
|
|
||||||
|
## উদাহরণ
|
||||||
|
|
||||||
|
### একক শব্দ প্যালিনড্রোম
|
||||||
|
- নাগরিক
|
||||||
|
- স্তর
|
||||||
|
- ম্যাডাম
|
||||||
|
- রাডার
|
||||||
|
|
||||||
|
### একাধিক শব্দ প্যালিনড্রোম
|
||||||
|
- মাথা নাড়বেন না।
|
||||||
|
- আমি করেছি, তাই না?
|
||||||
|
- আমার জিম
|
||||||
|
- একজন মানুষ, একটি পরিকল্পনা, একটি খাল - পানামা
|
||||||
|
|
||||||
|
## বাস্তবায়ন
|
||||||
|
- [C](../../../algorithms/C/strings/palindrome.c)
|
||||||
|
- [C++](../../../algorithms/CPlusPlus/Maths/palindrome.cpp)
|
||||||
|
- [C#](../../../algorithms/CSharp/src/Strings/palindrome.cs)
|
||||||
|
- [Haskell](../../../algorithms/Haskell/strings/palindrome.hs)
|
||||||
|
- [Java](../../../algorithms/Java/strings/palindrome.java)
|
||||||
|
- [JavaScript](../../../algorithms/JavaScript/src/strings/palindrome.js)
|
||||||
|
- [Python](../../../algorithms/Python/strings/palindrome.py)
|
||||||
|
- [Rust](../../../algorithms/Rust/strings/palindrome/src/main.rs)
|
||||||
|
|
||||||
|
## ভিডিও URL
|
||||||
|
[A coursera video explaining the palindrome Algorithm](https://www.coursera.org/lecture/program-code/palindrome-algorithm-1-zzQqs)
|
||||||
|
|
||||||
|
## অন্যান্য
|
||||||
|
[Wikipedia](https://en.wikipedia.org/wiki/Palindrome)
|
|
@ -0,0 +1,36 @@
|
||||||
|
# প্যালিন্ড্রোম
|
||||||
|
প্যালিন্ড্রোম হল একটি শব্দ, শব্দগুচ্ছ, সংখ্যা বা শব্দের ক্রম যা সামনের মতো পিছনের দিকে পড়ে। শব্দ বা অক্ষরের মধ্যে বিরাম চিহ্ন এবং স্পেস অনুমোদিত।
|
||||||
|
## ধাপ
|
||||||
|
১) সমস্ত বিরাম চিহ্ন এবং হোয়াইটস্পেস মুছে এবং সমস্ত অক্ষরকে ছোট হাতের অক্ষরে রূপান্তর করে স্ট্রিংটি পরিষ্কার করুন।
|
||||||
|
২) পরিষ্কার স্ট্রিং বিপরীত.
|
||||||
|
৩) যদি পরিষ্কার স্ট্রিং বিপরীত স্ট্রিং এর মত হয় তাহলে আমাদের একটি প্যালিনড্রোম আছে।
|
||||||
|
|
||||||
|
## উদাহরণ
|
||||||
|
|
||||||
|
### একক শব্দ প্যালিনড্রোম
|
||||||
|
- নাগরিক
|
||||||
|
- স্তর
|
||||||
|
- ম্যাডাম
|
||||||
|
- রাডার
|
||||||
|
|
||||||
|
### একাধিক শব্দ প্যালিনড্রোম
|
||||||
|
- মাথা নাড়বেন না।
|
||||||
|
- আমি করেছি, তাই না?
|
||||||
|
- আমার জিম
|
||||||
|
- একজন মানুষ, একটি পরিকল্পনা, একটি খাল - পানামা
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
- [C](../../../algorithms/C/strings/palindrome.c)
|
||||||
|
- [C++](../../../algorithms/CPlusPlus/Maths/palindrome.cpp)
|
||||||
|
- [C#](../../../algorithms/CSharp/src/Strings/palindrome.cs)
|
||||||
|
- [Haskell](../../../algorithms/Haskell/strings/palindrome.hs)
|
||||||
|
- [Java](../../../algorithms/Java/strings/palindrome.java)
|
||||||
|
- [JavaScript](../../../algorithms/JavaScript/src/strings/palindrome.js)
|
||||||
|
- [Python](../../../algorithms/Python/strings/palindrome.py)
|
||||||
|
- [Rust](../../../algorithms/Rust/strings/palindrome/src/main.rs)
|
||||||
|
|
||||||
|
## Video URL
|
||||||
|
[A coursera video explaining the palindrome Algorithm](https://www.coursera.org/lecture/program-code/palindrome-algorithm-1-zzQqs)
|
||||||
|
|
||||||
|
## Others
|
||||||
|
[Wikipedia](https://en.wikipedia.org/wiki/Palindrome)
|
Loading…
Reference in New Issue