internal int Recursive_Sort_Insert(Builder_Page_File newPage_File, 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 (newPage_File.CompareTo(this[startIndex]) <= 0) { List.Insert(startIndex, newPage_File); return(startIndex); } else { List.Insert(endIndex, newPage_File); return(endIndex); } } else { if (newPage_File.CompareTo(this[midIndex]) < 0) { endIndex = midIndex; } else { startIndex = midIndex; } return(Recursive_Sort_Insert(newPage_File, startIndex, endIndex)); } }
/// <summary> Insert a new page into this collection, based on the file name </summary> /// <param name="newPage_File"></param> /// <returns></returns> internal int Insert(Builder_Page_File newPage_File) { if (List.Count == 0) { return(List.Add(newPage_File)); } if (newPage_File.CompareTo(this[0]) <= 0) { List.Insert(0, newPage_File); return(0); } if (newPage_File.CompareTo(this[List.Count - 1]) >= 0) { return(List.Add(newPage_File)); } return(Recursive_Sort_Insert(newPage_File, 0, List.Count - 1)); }
/// <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); }
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); }