This repository is a collection of programs in various languages that demonstrate different algorithms taught in the “Design and Analysis of Algorithms” course, a key subject in the CSIT curriculum.
Whether you’re a CSIT student delving into this subject or an algorithm enthusiast exploring new techniques, this repository offers a wide range of well-documented algorithms for you to learn from and experiment with. Enjoy your journey through the fascinating world of algorithms!
The algorithms covered in this repository are:
- Searching algorithms:
- Linear search
- Binary search
- Sorting algorithms:
- Bubble sort
- Insertion sort
- Selection sort
- Divide & Conquer Algorithms:
- Merge sort
- Quick sort
- Heap sort
- Min-Max Finding
- Divide & Conquer approach
- Iterative method
These algorithms are implemented in multiple languages including Python, JavaScript, C, Go, etc.
To run the programs in this repository, you need to have the respective language runtime installed on your system.
For Python programs, you can download Python 3 from here.
For JavaScript programs, you need to have Node.js installed. You can download it from here.
To run a program, navigate to the folder that contains the program and execute it using the respective language runtime. For example:
For Python:
cd python/Sorting
python bubbleSort.py
For JavaScript:
cd javascript/Sorting
node bubbleSort.js
using Objective-C:
cd Searching
clang -framework Foundation -o linearSearch linearSearch.m
./linearSearch
Some programs may require input from the user or from a file. Please follow the instructions given in the comments or on the console.
We encourage you to contribute to this repository!
If you decide to contribute, please create a new folder for the language you’re adding and maintain the existing file structure.
Before making a pull request, ensure your code is well-commented and your commit messages are clear and concise.
Our goal is to have implementations of all algorithms taught in the “Design and Analysis of Algorithms” course in multiple programming languages.
We’re starting with Python, but we aim to include other languages with your help.
We look forward to seeing this repository grow with your contributions.
This project is licensed under the MIT License.
Meaning You can do what ever the hell you want with this code.