Bible Word Counter

Click Here for Project Repository


This project, undertaken for my Elementary Data Structures and Algorithms class, involved developing a Java-based text parser to analyze the complete text of the Bible. The core objective was to compare the efficiency of different data structures (like linked lists and hash map) in counting the frequency of each unique word.




The challenge lay in efficiently processing a large text file and accurately counting the occurrences of each unique word. This required careful consideration of data structure choices and algorithmic implementation to optimize for speed and memory usage.

With guidance from the professor, I was responsible for all aspects of the project, including:

  • Designing and implementing the text parsing logic in Java.
  • Selecting and implementing different data structures (e.g. linked lists, array lists, hash tables).
  • Implementing search algorithms (e.g. linear search, binary search) for word counting.
  • Conducting performance analysis to compare the efficiency of different approaches.
  • Writing comprehensive documentation for the code.

The final output was a Java program that could efficiently process the Bible text and provide an accurate count of each unique word. The project also provided valuable insights into the time and space complexity trade-offs associated with different data structures and algorithms when applied to a real-world text analysis task. The performance analysis demonstrated the significant speed advantages of using more efficient data structures and algorithms like HashMap and ArrayLists for this type of problem.

ArrayList

ArrayList

LinkedList

LinkedList

HashMap

HashMap

Skills used in this project