Skip to content

Commit 6ae9036

Browse files
authored
Simplified the README
- Improved visuals - Clear and concise descriptions - Better standards and naming conventions - Improved Hierarchy - Created template for DataStructure, Fixes #21
2 parents 90b5e1e + 7af5e01 commit 6ae9036

3 files changed

Lines changed: 143 additions & 104 deletions

File tree

Algorithms/README.md

Lines changed: 50 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,59 @@
11
# Algorithms
2-
This directory holds pseudocode for all the algorithms that we come across. This could be used to develop better algorithms and to optmize different algorithms to suit better in certain scenarios.
2+
3+
This directory contains pseudocode for various algorithms, aiding in the development of better algorithms and optimizing them for specific scenarios.
34

45
## Hierarchy
5-
This repository follows should follow strict hierarchy.
6-
7-
Folders for different types of Algorithms
8-
9-
1. **Search Algorithms**
10-
* Linear Search
11-
* Binary Search
12-
* Polynomial Search
13-
2. **Sorting Algorithms**
14-
* Bubble Sort
15-
* Selection Sort
16-
* Insertion Sort
17-
* Quick Sort
18-
* Merge Sort
19-
* Heap Sort
20-
* Shell Sort
21-
* Radix Sort
22-
* Bubble Sort
23-
3. **Path Finding Algorithms**
24-
* Dijkstra's algorithm
25-
* A<sup>*</sup> algorithm
26-
4. **Dynamic Programming Algorithms**
27-
5. **Greedy Algorithms**
28-
6. **Recursive Algorithms**
29-
7. **Machine Learning Algorithms**
30-
8. **Encryption/Decryption Algorithms**
31-
32-
The sub-folders in this directory, named after the algorithm will contain the pseudocode in README.md file along with its general analysis. There could be optional implementation in C++/Java or in other languages, kept in tha same directory as the README.md file.
33-
34-
35-
## Sections in the Algorithms page
6+
7+
The repository follows a strict hierarchy, with directories for different types of algorithms:
8+
9+
```plaintext
10+
Algorithms
11+
├── Search
12+
│ ├── LinearSearch
13+
│ ├── BinarySearch
14+
│ └── PolynomialSearch
15+
16+
├── Sort
17+
│ ├── BubbleSort
18+
│ ├── SelectionSort
19+
│ ├── InsertionSort
20+
│ ├── QuickSort
21+
│ ├── MergeSort
22+
│ ├── HeapSort
23+
│ ├── ShellSort
24+
│ └── RadixSort
25+
26+
├── PathFinding
27+
│ ├── DijkstrasAlgorithm
28+
│ └── AStarAlgorithm
29+
30+
├── DynamicProgrammingAlgorithms
31+
├── GreedyAlgorithms
32+
├── RecursiveAlgorithms
33+
├── MachineLearningAlgorithms
34+
└── EncryptionDecryptionAlgorithms
35+
```
36+
37+
## Sections Template
38+
39+
The `README.md` of algorithm will typically contain:
40+
3641
- Introduction
37-
- Pseuodcode
42+
- Pseudocode
3843
- Time Complexity
39-
- Where to use
40-
- Tips
44+
- Space Complexity
45+
- Variants
46+
- Use Cases
47+
- Best Practices
48+
- References
4149

42-
### Notations for the Time Complexity
50+
### Notations for `Time` & `Space` Complexity
4351

44-
Use respective symbols for representing the time complexity.
45-
- `Ω` Big Omega for `Best Case`
46-
- `Θ` Big Theta for `Average Case`
47-
- `O` Big O for `Worst Case`
52+
| Symbol | Name | Case |
53+
|--------|------------|--------------|
54+
| Ω | Big Omega | Best Case |
55+
| Θ | Big Theta | Average Case |
56+
| O | Big O | Worst Case |
4857

4958
> [!Note]
50-
> Use the specific order (best, avg, worst) for the time complexity.
59+
> Ensure the time complexity order follows: best, average, worst.

DataStructure/README.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,49 @@
1-
# Data Structure
2-
This folder contains all the data structures we come across.
1+
# Data Structures
2+
3+
This directory contains implementations, explanations, and optimizations of various data structures, essential for developing efficient algorithms and solving specific problems.
4+
5+
## Hierarchy
6+
7+
The repository maintains a clear hierarchy, organizing different types of data structures into directories:
8+
9+
```plaintext
10+
DataStructures
11+
├── Linear
12+
│ ├── Arrays
13+
│ ├── LinkedLists
14+
│ ├── Stacks
15+
│ └── Queues
16+
17+
├── Trees
18+
│ ├── BinaryTrees
19+
│ ├── BinarySearchTrees
20+
│ ├── AVLTrees
21+
│ └── RedBlackTrees
22+
23+
├── Graphs
24+
│ ├── DirectedGraphs
25+
│ └── WeightedGraphs
26+
27+
├── HashBased
28+
│ ├── HashTables
29+
│ ├── HashMaps
30+
│ └── HashSet
31+
32+
└── Specialized
33+
├── Heaps
34+
├── Trie
35+
├── BloomFilter
36+
└── SkipLists
37+
```
38+
## Sections Template
39+
40+
The `README.md` of each data structure will typically contain:
41+
42+
- Introduction
43+
- Visualization
44+
- Operations
45+
- Variants
46+
- Use Cases
47+
- Best Practices
48+
- References
49+

README.md

Lines changed: 44 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -2,86 +2,69 @@
22
A repository to store different types of Data-Structure & Algorithms for educational and research purposes.
33

44
This repository is divided into 2 parts:
5-
- [`DataStructure`](DataStructure): Contains the Data Structure
6-
- [`Algorithms`](Algorithms): Contains Alorithms.
5+
- [`/DataStructure`](DataStructure): Contains the Data Structure
6+
- [`/Algorithms`](Algorithms): Contains Alorithms.
77

88
Each has its own hierarchy system. The hierarchy is _strict_, and must be followed.
99

1010
## Hierarchy & Rules
1111
- Directory names should be in `PascalCase`.
1212
- There could be links to and from the Algorithms or DataStructure dir to link related things.
13-
- The heirarchy should follow
14-
15-
| Location | Purpose |
16-
|--------------------------------------------------------------|--------------------------------------------------------------------|
17-
|`/Algorithms/AlgorithmCategory/AlgorithmName/` | Store all about the algorithm (code, information, assets) |
18-
|`/Algorithms/AlgorithmCategory/AlgorithmName/README.md` | Information, pseudocode and explaination of the Algorithm |
19-
|`/DataStructure/Category/SubCategory/../Name/` | Store all about the data-structure (implementation, info, assets) |
20-
|`/DataStructure/Category/SubCategory/../Name/README.md` | Information, diagram, and explanation of the Data-Structure |
21-
22-
- The data structure's heirarchy could be as follows
23-
```
24-
DataStructure
25-
26-
├── Linear Data Structures
27-
│ ├── Arrays
28-
│ ├── Linked Lists
29-
│ ├── Stacks
30-
│ └── Queues
31-
32-
├── Non-Linear Data Structures
33-
│ ├── Trees
34-
│ │ ├── Binary Trees
35-
│ │ ├── Binary Search Trees (BST)
36-
│ │ ├── AVL Trees
37-
│ │ └── Red-Black Trees
38-
│ │
39-
│ └── Graphs
40-
│ ├── Directed Graphs (Digraphs)
41-
│ └── Weighted Graphs
13+
14+
## `/Algorithms`
15+
The `/Algorithms` directory is organized to accommodate various algorithm implementations, information, explanations, and supplementary details.
16+
17+
Within `/Algorithms`, the following subdirectories represent different categories of algorithms:
18+
19+
- **`/Sort`**: Contains algorithms for sorting data.
20+
- **`/Search`**: Includes algorithms for searching within a list.
21+
- **`/Utils`**: Houses algorithms that serve multiple purposes.
22+
23+
Each category directory (`/Sort`, `/Search`, `/Utils`) further includes directories for specific algorithms.
24+
25+
### Algorithm Directory Template
26+
27+
```plaintext
28+
AlgorithmName/
4229
43-
├── Hash-Based Data Structures
44-
│ ├── Hash Tables
45-
│ ├── Hash Maps
46-
│ └── Hash Sets
30+
├── README.md // Containing Pseudocode
4731
48-
└── Specialized Data Structures
49-
├── Heaps
50-
├── Trie
51-
├── Bloom Filter
52-
└── Skip Lists
53-
54-
```
55-
## Contributions
32+
└── AlgorithmName.xxx // (optional) Code implementation (.xxx is extention like java, cpp)
33+
```
34+
35+
## `/DataStructure`
5636

57-
We welcome contributions from everyone! Here are some ways you can contribute to our project:
37+
The `/DataStructure` directory is structured to house various data structure implementations, information, explanations, and supporting materials.
5838

59-
### Issues
39+
Within `/DataStructure`, different categories represent various types of data structures:
6040

61-
- Report bugs or suggest enhancements by creating GitHub issues.
62-
- Ensure the issue hasn't already been reported by checking the existing ones.
41+
- **`/Linear`**: Contains implementations of linear data structures.
42+
- **`/NonLinear`**: Encompasses implementations of non-linear data structures.
43+
- **`/HashBased`**: Stores implementations of hash-based data structures.
44+
- **`/Specialized`**: Includes specialized data structures.
6345

64-
### Pull Requests (PRs)
46+
Each category directory (`/Linear`, `/NonLinear`, `/HashBased`, `/Specialized`) further contains subdirectories for subcategories of data structures or specific data structures.
6547

66-
- Fork the repository, make changes, and submit Pull Requests for review.
67-
- Make sure your PRs are focused and address a single concern.
68-
- Adhere to the `code style` and `project conventions`.
48+
### DataStructure Directory Template
6949

70-
### Code Reviews
50+
```plaintext
51+
DataStructureName/
52+
53+
├── README.md // Containing description & diagram or the structure
54+
55+
└── DataStrucureName.xxx // (optional) Code implementation (.xxx is extention like java, cpp)
56+
```
7157

72-
- Review Pull Requests from others.
73-
- Provide constructive feedback and help improve code quality.
58+
## Contributions
7459

75-
### Documentation
60+
We welcome contributions! Here's how you can contribute to our project:
7661

77-
- Help improve the project's documentation.
78-
- Add or update README, guides, or other documentation files.
62+
- **Report Issues:** Help by reporting bugs or suggesting enhancements. Check existing issues before creating a new one.
7963

80-
### Spread the Word
64+
- **Pull Requests (PRs):** Submit focused PRs for review. Remember to follow the [_code style_](STANDARD.md).
8165

82-
- Star the repository if you find it useful.
83-
- Share it on social media or with your networks to help others discover it.
66+
- **Code Reviews:** Review PRs from others. Offer constructive feedback to improve code quality.
8467

8568
For more detailed guidelines, please refer to our [Contribution Guide](CONTRIBUTING.md).
8669

87-
Thank you for considering contributing to our project! Every contribution is highly appreciated. 🎉
70+
Your contributions are highly appreciated! 🎉

0 commit comments

Comments
 (0)