This Java application is designed to manage and manipulate the artwork database of the Cleveland Museum of Art. It supports fundamental functionalities such as adding artworks to the database, sorting artworks based on various attributes (e.g., height, price, width, name, artistName), and generating random lists of artworks. The application utilizes advanced sorting algorithms, including Merge Sort, to efficiently organize the artworks.
- Add new artwork entries to the museum's database.
- Sort the artworks based on specified attributes in ascending or descending order using Merge Sort, a highly efficient sorting algorithm.
- Generate random lists of artwork for display or analysis.
- Find artworks by a specific artist.
- Implement a specialized random sort that organizes artworks into categories based on multiple attributes.
- Java Development Kit (JDK) 11 or higher.
- A Java IDE (e.g. IntelliJ or Eclipse) is highly recommended.
- Ensure Java is installed on your system. You can download JDK from the Oracle website.
- Clone this repository to your local machine using
git clone https://github.com/hoangsonww/Sorting-Algorithms-DSA.git
. - Compile the Java files from your terminal or command prompt:
javac ArtMuseum.java Art.java
- Run the application:
java ArtMuseum
- There is also a comprehensive testing file, created with JUnit. Feel free to run it to test through the program:
java Tester
Or, you can simplify these steps with a Java-supported IDE such as IntelliJ IDEA!
To add artworks to the database, you'll need to instantiate Art
objects and add them to an ArtMuseum
instance using the add
method.
You can sort the museum's artwork database by invoking the sort
method on an ArtMuseum
instance, specifying the attribute to sort by (e.g., height
, price
, width
, name
, artistName
) and the direction of the sort (positive
for ascending, negative
for descending).
Invoke the randomizeArts
method on an ArtMuseum
instance, specifying the number of random artworks to generate.
Use the findArts
method to retrieve all artworks by a specific artist from the museum's database.
Contributions to the project are welcome. Please fork the repository, make your changes, and submit a pull request with a detailed description of your additions or changes.
Created with โค๏ธ by Son Nguyen in 2023.