Skip to content

Android-based e-reader developed in Java. Features a custom keyword search engine utilizing Binary Search Tree (BST) algorithms for optimized O(log n) performance

Notifications You must be signed in to change notification settings

ouyang-j/NovelReader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Novel Reader (Android)

JAVA Eclipse Android Studio

A lightweight Android application for reading internal novels, featuring an optimized keyword search engine built from scratch using Binary Search Tree (BST) algorithms.

1. Overview

This project was developed using Java and Android Studio. It serves as a proof-of-concept for handling text-based data efficiently on mobile devices without relying on external databases.

2. Key Features

  • Offline Reading: Internal novel library stored within the app.
  • Algorithmic Search: Implemented a Binary Tree search algorithm to handle keyword lookups across string arrays, significantly reducing search time compared to linear iteration.
  • User Interface: Custom list views for novel selection and a dedicated reading mode.

3. Technical Deep Dive: Search Logic

Instead of using standard library search functions, I implemented a Binary Search Tree (BST) to manage keywords.

  • Data Structure: Nodes containing String values from the novel arrays.
  • Optimization: The tree is balanced during construction to ensure $O(\log n)$ search complexity, making keyword jumps nearly instantaneous.

4. Tech Stack

  • Language: Java
  • IDE: Eclipse Android Studio
  • Data Structures: Binary Trees, String Arrays

5. P.S.

This project was developed in 2019 as my high school CS project. The code might be outdated.

About

Android-based e-reader developed in Java. Features a custom keyword search engine utilizing Binary Search Tree (BST) algorithms for optimized O(log n) performance

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages