Skip to content

Developed a dynamic data structure to efficiently manage and update the top k chess players by Elo ratings.

Notifications You must be signed in to change notification settings

rudra-singh1/topKheap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TopKHeap: Chess Ranking System

Project Overview

The TopKHeap project is an implementation of a specialized data structure that combines binary min and max heaps to efficiently maintain and update the rankings of chess players based on their Elo scores. This project serves as an excellent illustration of utilizing heaps to handle dynamic datasets, making it highly relevant for applications requiring quick access to top-ranked entities.

Objectives

  • Understand Binary Heaps: Implement and modify binary heap data structures to enhance their functionality.
  • Create TopKHeap: Leverage both min and max heaps to construct a new data structure for tracking the best chess players of all time.

Implementation Details

The project consists of the following key components:

  1. BinaryMinHeap: Implementation of a binary min heap that supports operations such as insertion, extraction, and priority updates.
  2. BinaryMaxHeap: Modification of the min heap to create a binary max heap, allowing for similar functionalities but prioritizing the maximum value.
  3. TopKHeap: A composite data structure that utilizes both heaps to efficiently maintain the top k chess players based on their Elo scores.

Motivation

The Elo rating system provides a method for ranking chess players, predicting outcomes based on relative scores. This project addresses the challenge of dynamically updating player ratings from numerous games while efficiently maintaining a list of top players. The TopKHeap is designed to optimize these processes, providing a robust solution for ranking in chess and beyond.

Implementation Guidelines

  • The heaps are implemented using arrays, following strict performance and readability guidelines.
  • Code is structured to be clean and well-commented for ease of understanding.
  • Java generics are used to ensure flexibility and reusability of the heap structures.

Technologies Used

  • Language: Java
  • Data Structures: Binary Min Heap, Binary Max Heap, Custom TopKHeap
  • Concepts: Generics, Comparable Interface, HashMaps

Files

  • BinaryMinHeap.java: Implementation of the binary min heap.
  • BinaryMaxHeap.java: Implementation of the binary max heap.
  • TopKHeap.java: Data structure for managing the top k chess players.
  • (Testing and additional files not provided)

Project Highlights

  • Efficient handling of dynamic datasets.
  • Practical application of theoretical data structure concepts.
  • Insight into chess ranking systems and their implementation.

About

Developed a dynamic data structure to efficiently manage and update the top k chess players by Elo ratings.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages