Added explanations in Bengali language
parent
5d18a66cd8
commit
dfc7157d7b
|
@ -19,6 +19,7 @@ Data structure and Algorithm (DSA)
|
|||
- [Turkish](./docs/tr)
|
||||
- [繁體中文](./docs/zh-tw)
|
||||
- [日本語](./docs/ja)
|
||||
- [বাংলা](./docs/bn)
|
||||
|
||||
## 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