/// <summary> Binary search for an object</summary>
 /// <param name="set_Renamed">The collection of <code>Ordered</code> objects.
 /// </param>
 /// <param name="ref_Renamed">The name to search for.
 /// </param>
 /// <returns> The index at which reference was found or is to be inserted.
 /// </returns>
 public static int Bsearch(ISortable set_Renamed, IOrdered ref_Renamed)
 {
     return(Bsearch(set_Renamed, ref_Renamed, set_Renamed.First(), set_Renamed.Last()));
 }
		/// <summary> Binary search for an object</summary>
		/// <param name="set_Renamed">The collection of <code>Ordered</code> objects.
		/// </param>
		/// <param name="ref_Renamed">The name to search for.
		/// </param>
		/// <returns> The index at which reference was found or is to be inserted.
		/// </returns>
		public static int Bsearch(ISortable set_Renamed, IOrdered ref_Renamed)
		{
			return (Bsearch(set_Renamed, ref_Renamed, set_Renamed.First(), set_Renamed.Last()));
		}
 /// <summary> This is a generic version of C.A.R Hoare's Quick Sort algorithm.
 /// This will handle Sortable objects that are already
 /// sorted, and Sortable objects with duplicate keys.
 /// <p>
 /// Equivalent to:
 /// <pre>
 /// QuickSort (sortable, sortable.first (), sortable.last ());
 /// </pre>
 /// </summary>
 /// <param name="sortable">A <code>Sortable</code> object.
 /// </param>
 public static void  QuickSort(ISortable sortable)
 {
     QuickSort(sortable, sortable.First(), sortable.Last());
 }
		/// <summary> This is a generic version of C.A.R Hoare's Quick Sort algorithm.
		/// This will handle Sortable objects that are already
		/// sorted, and Sortable objects with duplicate keys.
		/// <p>
		/// Equivalent to:
		/// <pre>
		/// QuickSort (sortable, sortable.first (), sortable.last ());
		/// </pre>
		/// </summary>
		/// <param name="sortable">A <code>Sortable</code> object.
		/// </param>
		public static void  QuickSort(ISortable sortable)
		{
			QuickSort(sortable, sortable.First(), sortable.Last());
		}