A powerful web application for file compression using advanced data structures and algorithms, demonstrating key computer science principles.
- Greedy Algorithm: Huffman coding uses a greedy approach to build an optimal prefix code
- Priority Queue (Min-Heap): Efficiently manages character frequencies during tree construction
- Binary Tree: Represents the Huffman encoding tree
- Hash Map (Dictionary): Stores character frequencies and encoding mappings
- Time Complexity: O(n log k), where n is data length and k is unique characters
- Space Complexity: O(k), where k is the number of unique characters
- Uses heapq for priority queue operations
- Builds an optimal prefix code for data compression
- Sorting Algorithms: Used to sort characters by frequency
- Set Data Structure: Efficiently remove less frequent characters
- Statistical Analysis: Calculate character frequency thresholds
- Character frequency filtering
- Prefix coding
- Lossy and lossless compression techniques
- Multi-stage compression algorithm
- Stream Processing: Handle data in chunks
- Encoding Techniques:
- Base64 encoding
- zlib compression
- Error Handling: Robust decompression mechanisms
- Frequency Dictionary Creation: O(n)
- Huffman Tree Construction: O(k log k)
- Encoding Generation: O(k)
- Data Compression: O(n)
- Code Reversal: O(k)
- Bit Stream Decoding: O(n)
- Python
- Flask
- Huffman Coding Algorithm
- zlib Compression
- Base64 Encoding
- Python 3.8+
- pip
- Clone the repository
git clone https://github.com/yourusername/file-compression-webapp.git
cd file-compression-webapp- Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`- Install dependencies
pip install -r requirements.txt- Run the application
python app.py- Upload files for compression
- Adjust compression percentage
- Download compressed or decompressed files
- Character frequency filtering
- Huffman coding
- zlib compression
- Base64 encoding
- Advanced compression algorithms
- Efficient data representation
- Algorithmic optimization techniques
- Practical application of theoretical computer science concepts
MIT License
Contributions are welcome! Please feel free to submit a Pull Request.