-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRecommendAnime.h
37 lines (31 loc) · 1.46 KB
/
RecommendAnime.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//
// Created by chlaw on 11/14/2023.
//
#pragma once
#include "ReadData.h"
#include "Anime.h"
#include <vector>
#include <unordered_map>
class RecommendAnime
{
public:
ReadData data1;
bool recommendationPrioritizations[3];
string sortMethod;
RecommendAnime();
void printAnimeInfo(Anime* anime);
void printRecommendations(float normalizedEpisodes, float normalizedRating,
vector<string> inputtedGenres, vector<Anime *> inputtedAnimes, int numRecommendations);
void calculateRecommendations(vector<Anime*> inputtedAnimes, int numRecommendations);
vector<Anime*> getAnimeWithSameGenre(vector<Anime *> inputtedAnimes, vector<string> inputtedGenres);
vector<Anime*> getAnimeWithSimilarGenre(vector<Anime *> inputtedAnimes, vector<string> inputtedGenres);
float getOverallWeight(float normalizedEpisodes, float normalizedRating, float epWeight, float ratingWeight);
// sorting algorithm
// low --> Starting index,
// high --> Ending index
void swap(vector<Anime*> &vect, int i, int j);
void quickSort(vector<Anime*> &vect, int low, int high);
int partition(vector<Anime*> &vect, int low, int high);
int shellSort(vector<Anime*> &vect);
void compare(vector<Anime*> &vect, float epWeight, float ratingWeight, float weight1);
};