/// <summary> /// ヒープ化されている配列リストに新しい要素を追加する。 /// </summary> /// <param name="array">対象の配列リスト</param> static void PushHeap(ArrayList <T> array, T elem) { int n = array.Count; array.InsertLast(elem); while (n != 0) { int i = (n - 1) / 2; if (array[n].CompareTo(array[i]) > 0) { T tmp = array[n]; array[n] = array[i]; array[i] = tmp; } n = i; } }