Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DownHeap()

void System.Array.SorterGenericArray.DownHeap ( int i,
int n,
int lo )
inlineprivate

Definition at line 376 of file Array.cs.

377 {
378 object value = keys.GetValue(lo + i - 1);
379 object value2 = items?.GetValue(lo + i - 1);
380 while (i <= n / 2)
381 {
382 int num = 2 * i;
383 if (num < n && comparer.Compare(keys.GetValue(lo + num - 1), keys.GetValue(lo + num)) < 0)
384 {
385 num++;
386 }
387 if (comparer.Compare(value, keys.GetValue(lo + num - 1)) >= 0)
388 {
389 break;
390 }
391 keys.SetValue(keys.GetValue(lo + num - 1), lo + i - 1);
392 if (items != null)
393 {
394 items.SetValue(items.GetValue(lo + num - 1), lo + i - 1);
395 }
396 i = num;
397 }
398 keys.SetValue(value, lo + i - 1);
399 if (items != null)
400 {
401 items.SetValue(value2, lo + i - 1);
402 }
403 }
object? GetValue(params int[] indices)
Definition Array.cs:980
unsafe void SetValue(object? value, int index)
Definition Array.cs:1022
readonly IComparer comparer
Definition Array.cs:233

References System.Collections.Generic.IComparer< in T >.Compare(), System.Array.SorterGenericArray.comparer, System.Array.GetValue(), System.Array.SorterGenericArray.items, System.Array.SorterGenericArray.keys, System.Array.SetValue(), and System.value.

Referenced by System.Array.SorterGenericArray.Heapsort().