forked from MrEntity303/ST0853-ASD
-
Notifications
You must be signed in to change notification settings - Fork 0
/
AVLTreeSort.java
39 lines (33 loc) · 1.06 KB
/
AVLTreeSort.java
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
38
39
/**
*
*/
package it.unicam.cs.asdl2122.pt1;
import java.util.List;
/**
* Algoritmo di ordinamento che usa un albero AVL con molteplicità per ordinare
* una lista di elementi. La strategia di realizzazione è semplice: si
* inseriscono i valori da ordinare in un AVLTree e poi si fa una visita inOrder
* per ottenere la lista ordinata di elementi.
*
* @author Luca Tesei (Template)
*
*/
public class AVLTreeSort<E extends Comparable<E>>
implements SortingAlgorithm<E> {
public SortingAlgorithmResult<E> sort(List<E> l) {
//creo un avl tree vuoto
AVLTree<E> avlTree= new AVLTree<>();
int compareCounter = 0;
/*
* inserisco nell'avl tutti gli elementi della lista
* e accumulo il numero di confronti
*/
for (E element: l)
compareCounter += avlTree.insert(element);
//ritorno il numero di confronti e lista ottenuta
return new SortingAlgorithmResult<>(avlTree.inOrderVisit(), compareCounter);
}
public String getName() {
return "AVLTreeSort";
}
}