J'implémente une classe HeapSort afin qu'elle commande la liste entière en une seule fois à l'aide d'une méthode addAll et stocke les éléments commandés dans heap dans la liste. C'est le programme du pilote pour la classe HeapSort. Pourquoi ne puis-je pas créer un nouvel objet HeapSort? Ce que je veux dire par là, quand j'essaye de créer l'objet de heaport, j'obtiens des erreurs en disant que "HeapSort est un type brut, les références au type générique HeapSort devraient être paramétrées." et aussi des erreurs comme "constructeur HeapSort (Integer []) est indéfini." Qu'est-ce que cela signifie? pourquoi ne puis-je faire cet objet?Création d'un objet dans une classe de pilote pour une implémentation de tri de tas
/*demonstrates the HeapSort class so it orders the
* entire list at once using addAll method and re-stores
* the elements ordered in heap into the list*/
public class HeapDemo {
public static void main(String[] args) {
//create a list of integer objects
Integer[] data = {4, 1, 6, 2, 5, 3};
//display elements in list before sorting
System.out.println("Elements in the list before sorting:");
for(int i=0;i<data.length;i++)
System.out.print(data[i] + " ");
System.out.println();
//create object for HeapSort class
HeapSort first = new HeapSort(data);
//display elements in list after sorting
System.out.println("\nElements in the list after sorting:");
for(int i=0;i<data.length;i++)
System.out.print(data[i] + " ");
System.out.println();
}
}
Voici ma classe HeapSort:
/**
* HeapSort sorts a given array of Comparable objects using a heap.
*
* @author Java Foundations
* @version 4.0
*/
public class HeapSort<T>
{
/**
* Sorts the specified array using a Heap
*
* @param data the data to be added to the heapsort
*/
ArrayHeap heap;
public void HeapSort(T[] data)
{
ArrayHeap<T> temp = new ArrayHeap<T>();
addAll(data);
// copy the array into a heap
/*
* for (int i = 0; i < data.length; i++)
temp.addElement(data[i]);*/
// place the sorted elements back into the array
int count = 0;
while (!(temp.isEmpty()))
{
data[count] = temp.removeMin();
count++;
}
}
//accepts a list of elements and stores all elements into heap
private void addAll(T[] list) {
for(int i=0;i<list.length;i++)
heap.addElement(list[i]);
}
}
Quelle erreur obtenez-vous? – Mureinik
Sans aucun type de message d'erreur, nous ne pouvons pas vraiment dire. –
@Mureinik désolé j'ai mis à jour que maintenant –