static async Task <ValueTracker> Median(SortedObject obj, int index1, int index2, int index3) { if (await obj.Compare(index1, index2) < 0) { if (await obj.Compare(index2, index3) < 0) { return(obj.MarkIndex(index2)); } else if (await obj.Compare(index3, index1) < 0) { return(obj.MarkIndex(index1)); } else { return(obj.MarkIndex(index3)); } } else if (await obj.Compare(index3, index2) < 0) { return(obj.MarkIndex(index2)); } else if (await obj.Compare(index1, index3) < 0) { return(obj.MarkIndex(index1)); } else { return(obj.MarkIndex(index3)); } }