Έτσι, ο γιατρός μου μου ζητά να εφαρμόσουν treeSort () και, στη συνέχεια, να το δοκιμάσετε στο int [1000000] και τον υπολογισμό του χρόνου.
Έχω κατηγορία BSTree<E>η οποία περιέχει τις ακόλουθες μεθόδους:
public void treeSort(E[] data)
{
inorder(data, new Process<E>(), root);
}
public static <E> void inorder(E[] list, Process<E> proc, BTNode<E> p)
{
if (p != null)
{
inorder(list, proc, p.getLeft( )); // Traverse its left subtree
proc.append(list, p.getElement( )); // Process the node
inorder(list, proc, p.getRight( )); // Traverse its right subtree
}
}
και έχω Process<E>την κατηγορία:
public class Process<E>
{
private int counter = 0;
public void append(E[] list, E element)
{
list[counter] = element;
counter++;
}
}
και έχω την εξής Mainκατηγορία:
public class Main
{
public static void main(String[] args)
{
int[] temp = {4,2,6,4,5,2,9,7,11,0,-1,4,-5};
treeSort(temp);
for(int s : temp) System.out.println(s);
}
public static void treeSort(int[] data)
{
BSTree<Integer> tree = new BSTree<Integer>();
for(int i: data) tree.insert(i);
tree.inorder(data, new Process<Integer>(), tree.getRoot()); // I get an error here!
}
}
Το σφάλμα είναι:
cannot find symbol - method inorder(int[], Process<java.lang.Integer>, BTNode<java.lang.Integer>); maybe you meant: inorder(E[], Process<E>, BTNode<E>);
Θα καθοριστεί ότι με την αλλαγή treeSort(int[] data)στο treeSort(Integer[] data). Αλλά πήρα ένα σφάλμα στην κύρια μέθοδο σεtreeSort(temp);
και το σφάλμα είναι:
treeSort(java.lang.Integer) in Main cannot be applied to (int[])
Έτσι, πώς μπορώ να ασχοληθεί με το θέμα αυτό με τη λήψη υπόψη όχι αύξηση του χρόνου πολυπλοκότητα όπου πρέπει να δοκιμάσετε αυτή τη μέθοδο κατά 1 εκατομμύριο εισόδους;













