Lucene.Net.Search.DisjunctionMaxScorer.HeapAdjust C# (CSharp) Method

HeapAdjust() private method

private HeapAdjust ( int root ) : void
root int
return void
		private void  HeapAdjust(int root)
		{
			Scorer scorer = subScorers[root];
			int doc = scorer.DocID();
			int i = root;
			while (i <= (numScorers >> 1) - 1)
			{
				int lchild = (i << 1) + 1;
				Scorer lscorer = subScorers[lchild];
				int ldoc = lscorer.DocID();
				int rdoc = System.Int32.MaxValue, rchild = (i << 1) + 2;
				Scorer rscorer = null;
				if (rchild < numScorers)
				{
					rscorer = subScorers[rchild];
					rdoc = rscorer.DocID();
				}
				if (ldoc < doc)
				{
					if (rdoc < ldoc)
					{
						subScorers[i] = rscorer;
						subScorers[rchild] = scorer;
						i = rchild;
					}
					else
					{
						subScorers[i] = lscorer;
						subScorers[lchild] = scorer;
						i = lchild;
					}
				}
				else if (rdoc < doc)
				{
					subScorers[i] = rscorer;
					subScorers[rchild] = scorer;
					i = rchild;
				}
				else
				{
					return ;
				}
			}
		}