internal int Recursive_Sort_Insert(Builder_Page_File NewPageFile, int Start, int End) { int startIndex = Start; int endIndex = End; int midIndex = (int)Math.Ceiling((double)(endIndex - startIndex) / 2) + startIndex; if (endIndex - startIndex <= 1) { if (NewPageFile.CompareTo(this[startIndex]) <= 0) { List.Insert(startIndex, NewPageFile); return(startIndex); } List.Insert(endIndex, NewPageFile); return(endIndex); } if (NewPageFile.CompareTo(this[midIndex]) < 0) { endIndex = midIndex; } else { startIndex = midIndex; } return(Recursive_Sort_Insert(NewPageFile, startIndex, endIndex)); }
/// <summary> Insert a new page into this collection, based on the file name </summary> /// <param name="NewPageFile"></param> /// <returns></returns> internal int Insert(Builder_Page_File NewPageFile) { if (List.Count == 0) { return(List.Add(NewPageFile)); } if (NewPageFile.CompareTo(this[0]) <= 0) { List.Insert(0, NewPageFile); return(0); } if (NewPageFile.CompareTo(this[List.Count - 1]) >= 0) { return(List.Add(NewPageFile)); } return(Recursive_Sort_Insert(NewPageFile, 0, List.Count - 1)); }