我应该使用"如果"或"而"在这段代码?进入一堆

时间:2018-02-08 23:42:02

标签: java insert heap

考虑这里的部分,我应该使用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并选择较大的一个,然后将其替换为父级。

1 个答案:

答案 0 :(得分:2)

它们是两个非常不同的东西。

if语句检查表达式是否为true或false,然后在语句中运行代码。代码运行一次。

while语句是一个循环。只要表达式为真,它就会继续执行语句中的代码。

很难比较两者的优点/缺点,因为它们分别做两件事。