考虑这里的部分,我应该使用if或while将新密钥插入堆中。所以我可以比较父母和他们的孩子,如果孩子比较大,我可以把它换成父母。它也应该是效率。
public void insert(Student newS)
{
students.add(newS); //add new student
int index = size()-1; //last index
int parent =(index);
while(newS.gpa() > students.get(parent).gpa()); // gpa of new student > gpa of parent.
{
swap(parent, index);
index = parent;
parent = parent(index);
}
}
我应该使用If而不是while吗?哪一个更好?虽然可以通过arraylist并选择较大的一个,然后将其替换为父级。
答案 0 :(得分:2)
它们是两个非常不同的东西。
if语句检查表达式是否为true或false,然后在语句中运行代码。代码运行一次。
while语句是一个循环。只要表达式为真,它就会继续执行语句中的代码。
很难比较两者的优点/缺点,因为它们分别做两件事。