二项队列的查找最小索引

源代码
代码中的findMinIndex()方法如下:

private int findMinIndex( )
{
    int i;
    int minIndex;

    for( i = 0; theTrees[ i ] == null; i++ )
        ;

    for( minIndex = i; i < theTrees.length; i++ )
        if( theTrees[ i ] != null &&
            theTrees[ i ].element.compareTo( theTrees[ minIndex ].element ) < 0 )
            minIndex = i;

    return minIndex;
}

当中的第一个循环作用跟目的是什么?如果数组如[1,null,3,4]那么找出来的最小值不是错的?

阅读 2.5k
1 个回答

找到数组中第一个不是null的元素下标,目的是确保在第二步中,minIndex所指示的数组元素不是null。
[1,null,3,4]能找出最小值,因为第二个循环里已经check过null了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏