Web-Based Algorithm Complexity Analyzer Using JavaScript and PHP for Dr. Yanga's College Inc. Algorithm Education
This project is a web-based system designed to compute and analyze the time and space complexity of selected algorithms. It is intended to support college-level instruction in algorithm analysis by providing both theoretical and empirical insights.
The system allows users to select algorithms, input problem sizes, execute implementations in JavaScript, and observe measured runtime alongside theoretical complexity classifications. Results are stored and can be visualized through graphs for comparative analysis.
- Apply theoretical complexity analysis (Big-O, Big-Theta, Big-Omega)
- Implement algorithms using JavaScript
- Measure empirical runtime behavior
- Compare empirical and theoretical results
- Store and retrieve execution data using a database
- Visualize algorithm efficiency through graphs
- Bubble Sort — Time: O(n²), Space: O(1)
- Merge Sort — Time: O(n log n), Space: O(n)
- Binary Search — Time: O(log n), Space: O(1)
- Linear Search — Time: O(n), Space: O(1)
- Fibonacci (Recursive) — Time: O(2ⁿ), Space: O(n)
- Fibonacci (Dynamic Programming) — Time: O(n), Space: O(n)
- HTML, CSS, JavaScript
- Handles user interaction, input configuration, and visualization
- PHP
- Processes requests and manages data storage
- MySQL
- Stores execution results and input configurations
- Algorithm selection interface
- Input size configuration
- Runtime measurement using high-resolution timing
- Complexity classification (time and space)
- Graph-based visualization of results
- Persistent data storage
- Define system scope and requirements
- Assign roles and responsibilities
- Design user interface
- Plan database schema
- Define API endpoints
- Implement frontend components
- Develop backend services
- Implement algorithms and runtime measurement
- Connect frontend and backend systems
- Ensure proper data flow
- Validate algorithm correctness
- Verify runtime measurements
- Handle edge cases
- Implement graphing features
- Improve usability and clarity
- Prepare written documentation
- Develop presentation materials
- Oversees project timeline and coordination
- Ensures milestones are met
- Defines system requirements and architecture
- Ensures alignment with theoretical concepts
- Develops user interface
- Implements visualization features
- Builds API endpoints
- Handles server-side logic and database interaction
- Designs and maintains database schema
- Ensures data integrity
- Tests system functionality
- Identifies bugs and inconsistencies
- Prepares technical documentation
- Ensures clarity and completeness
Duration: 10–15 minutes
Sections:
- Introduction
- Problem Statement
- System Architecture
- Algorithm Demonstration
- Complexity Analysis
- Live Demonstration
- Conclusion
| Category | Points |
|---|---|
| Functionality | 30 |
| System Design | 20 |
| Complexity Analysis | 25 |
| Code Quality | 15 |
| Presentation | 10 |
| Total | 100 |
- Runtime results may vary depending on hardware and browser environment
- Complexity classification is based on predefined mappings
- Large input sizes may affect responsiveness
- Additional algorithm support
- Step-by-step execution visualization
- Multi-language implementation support
- Advanced static analysis capabilities