Added explanations in Bengali language

pull/908/head
cseshohag 2022-10-04 00:03:45 +06:00
parent 5d18a66cd8
commit dfc7157d7b
8 changed files with 307 additions and 0 deletions

View File

@ -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

143
README.md.bak 100644
View File

@ -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)

View File

@ -0,0 +1,27 @@
# অ্যালগরিদমের নাম
অ্যালগরিদমের একটি সংক্ষিপ্ত বিবরণ লিখুন যেমন:
১) সময়ের জটিলতা
২) স্থান জটিলতা
৩) অ্যাপ্লিকেশন
) প্রতিষ্ঠাতার নাম
৫) ইত্যাদি...
## ধাপ
অ্যালগরিদমটি পরিষ্কার, সহজ এবং বোধগম্য ধাপে বর্ণনা করুন।
## উদাহরণ
নমুনা ইনপুট ডেটা সহ অ্যালগরিদম ট্রেস করুন।
## বাস্তবায়ন
প্রোগ্রামিং ভাষায় তাদের বাস্তবায়নের লিঙ্ক।
দ্রষ্টব্য: লিঙ্কটি শুধুমাত্র অ্যালগরিদম ফোল্ডারের মধ্যে থাকা উচিত।
## ভিডিও URL
অ্যালগরিদম ব্যাখ্যা করে এমন একটি ভিডিওর URL সংযুক্ত করুন৷
## অন্যান্য
অন্য কোন তথ্য সবসময় স্বাগত জানাই এবং এই বিভাগে অন্তর্ভুক্ত করা উচিত।

View File

@ -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.

View File

@ -0,0 +1,9 @@
# অ্যালগরিদম
## স্ট্রিং
- [প্যালিনড্রোম](./Strings/Palindrome.md)
## অন্যান্য
[কিভাবে নতুন অ্যালগরিদম ডকুমেন্টেশন যোগ করতে হয়?](./CONTRIBUTING.md)

View File

@ -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)

View File

@ -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)

View File

@ -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)