🚀 Algo Sense
A comprehensive VS Code extension for learning and exploring algorithms with implementations in multiple programming languages.
✨ Features
- 📚 Comprehensive Algorithm Library: Access to 26+ sorting algorithms and 14+ searching algorithms
- 🌍 Multi-Language Support: Implementations in JavaScript, Python, and Java
- 🎯 Interactive Dashboard: Beautiful, modern interface with space-themed design
- 🔍 Smart Search: Find algorithms quickly with intelligent search functionality
- 📊 Detailed Analysis: Time complexity, space complexity, advantages, disadvantages, and use cases
- 💻 Code Integration: Copy algorithm implementations directly to clipboard
- 🎨 Modern UI: Dark theme with glass effects and smooth animations
- 📝 Algorithm History: Comprehensive timeline of algorithm development in computer science
- 🔒 Security-First: Built with Content Security Policy and XSS protection
- 📱 Responsive Design: Works seamlessly across different screen sizes
📦 Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "Algo Sense"
- Click Install
From Source
- Clone this repository
- Run
npm install
- Run
npm run compile
- Press F5 to launch the extension in a new VS Code window
🎮 Usage
Activity Bar
- Click the Algo Sense icon in the VS Code activity bar (left sidebar)
- Explore algorithms by category in the Algorithm Explorer
- View the Dashboard for an overview of all algorithms
- Check Algorithm Details for comprehensive information
- Access Algorithm History for historical development timeline
Command Palette
- Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac)
- Type "Algo Sense" to see available commands:
Algo Sense: Open Algo Sense Dashboard
Algo Sense: Show Algorithm History
Algo Sense: Search Algorithm
Algo Sense: Show Algorithm Details
Dashboard Features
- Category Cards: Browse algorithms by category with modern glass design
- Search Bar: Find algorithms by name, description, or tags
- Statistics: View total algorithms, categories, and supported languages
- Quick Access: Click on any algorithm to view detailed information
- Space Theme: Beautiful dark blue gradient background with glass effects
Algorithm Details
- Complexity Analysis: Clean Big O notation display (Best, Average, Worst Case, Space Complexity)
- Multi-Language Implementations: Switch between JavaScript, Python, and Java
- Pseudocode: Step-by-step algorithm explanation
- Use Cases: Real-world applications and scenarios
- Advantages & Disadvantages: Comprehensive analysis
- Code Actions: Copy code to clipboard with one click
- Tab System: Easy navigation between different implementations
📚 Current Algorithm Library
🔄 Sorting Algorithms (26 Algorithms)
Elementary Sort
- Bubble Sort - Simple comparison-based sorting
- Selection Sort - In-place comparison sorting
- Insertion Sort - Builds final array one item at a time
Divide & Conquer
- Merge Sort - Stable, divide-and-conquer algorithm
- Quick Sort - Efficient, in-place sorting
- Three-Way Quick Sort - Handles duplicate elements efficiently
Heap-Based
- Heap Sort - In-place sorting using heap data structure
Non-Comparison
- Counting Sort - Integer sorting with linear time complexity
- Radix Sort - Digit-based sorting algorithm
- Bucket Sort - Distribution-based sorting
- Pigeonhole Sort - Similar to counting sort
Hybrid
- Timsort - Hybrid of merge sort and insertion sort
- Intro Sort - Hybrid of quick sort, heap sort, and insertion sort
- Shell Sort - Improves insertion sort with gap sequence
Stable vs. Unstable
- Cycle Sort - In-place, unstable sorting
- Cocktail Shaker Sort - Bidirectional bubble sort
- Gnome Sort - Simple comparison-based algorithm
- Comb Sort - Improves bubble sort with gap sequence
- Odd-Even Sort - Parallel sorting algorithm
Rare/Theoretical
- Binary Insertion Sort - Uses binary search for insertion
- Block Sort (GrailSort) - In-place merge sort variant
- Bitonic Sort - Parallel sorting algorithm
- Odd-Even Merge Sort - Parallel merge sort variant
- Patience Sort - Card game-inspired sorting
- Strand Sort - Recursive sorting algorithm
🔍 Searching Algorithms (14 Algorithms)
Basic Search
- Linear Search - Simple sequential search
- Binary Search - Efficient sorted array search
Graph/Tree Search
- Depth-First Search (DFS) - Graph traversal algorithm
- Breadth-First Search (BFS) - Level-order graph traversal
- Greedy Best-First Search - Heuristic-based search
String/Pattern Search
- Jump Search - Block-based search algorithm
- Order-agnostic Binary Search - Works on sorted arrays in any order
- Interpolation Search - Improvement over binary search
- Exponential Search - Unbounded binary search
- Sentinel Linear Search - Optimized linear search
- Fibonacci Search - Uses Fibonacci numbers for search
- Rabin–Karp Algorithm - String pattern matching
- Knuth–Morris–Pratt (KMP) - Efficient string matching
- Boyer–Moore String-Search - Fast string search algorithm
Data Structure Based Search
- Hash Table / Hashing - Constant-time average case search
🚧 Coming Soon
🕸️ Graph Algorithms
- Dijkstra's Algorithm, A* Search, Bellman-Ford, Floyd-Warshall
- Prim's Algorithm, Kruskal's Algorithm
- Topological Sort, Strongly Connected Components
🤖 AI & Machine Learning
- Linear Regression, Logistic Regression
- Support Vector Machines (SVM), K-Nearest Neighbors (K-NN)
- Decision Trees, Random Forest
- K-Means Clustering, Hierarchical Clustering
- Neural Networks, Backpropagation
🔐 Cryptography & Security
- AES, DES, Triple DES, Blowfish
- RSA Algorithm, Diffie-Hellman Key Exchange
- SHA-256, SHA-3, MD5, bcrypt
- Caesar Cipher, Vigenère Cipher
📐 Optimization & Mathematical
- Dynamic Programming algorithms
- Simulated Annealing, Tabu Search, Hill Climbing
- Simplex Algorithm
- Euclid's Algorithm, AKS Primality Test
🎨 Computer Graphics & Image Processing
- Canny Edge Detection, Sobel Operator
- Bresenham's Line Algorithm, Midpoint Circle Algorithm
- Huffman Coding, Lempel-Ziv compression
🌐 Network & Distributed Systems
- OSPF, BGP routing algorithms
- Leaky Bucket, Token Bucket algorithms
- Paxos, Raft, Byzantine Fault Tolerance
🛠️ Development
Prerequisites
- Node.js (v14 or higher)
- VS Code
- TypeScript
Setup
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Watch for changes
npm run watch
# Package extension
npx vsce package
🎨 Customization
Adding New Algorithms
- Open
src/data/SortingAlgorithmData.ts or src/data/SearchingAlgorithmData.ts
- Add your algorithm to the appropriate
initializeAlgorithms() method
- Follow the existing pattern for structure and implementations
Adding New Programming Languages
- Update the implementation structure in algorithm data files
- Add your language implementation to the algorithm data
🔒 Security Features
- Content Security Policy (CSP): Prevents XSS attacks
- XSS Protection: HTML escaping for dynamic content
- Clickjacking Protection: X-Frame-Options headers
- MIME Sniffing Protection: X-Content-Type-Options headers
- Referrer Policy: Controls referrer information
- Webview Security: Restricted local resource access
🤝 Contributing
We welcome contributions! Please feel free to submit issues, feature requests, or pull requests.
Contributing Guidelines
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- VS Code team for the excellent extension API
- The open-source community for algorithm implementations
- All contributors who help improve this extension
⚠️ Disclaimer
Algo Sense is developed for educational and entertainment purposes only. While we strive to provide accurate algorithm implementations and information, there may be errors or inaccuracies. Please use this extension with caution and verify any critical implementations before using them in production environments.
The developers are not responsible for any issues, bugs, or consequences that may arise from the use of this extension.
📞 Support
Made with ❤️ for the developer community
| |