def calculate(numbers):

    numbers1 = list(numbers)
    start = time.time()
    median_quick_sort = QuickSort.quick_sort_median(numbers1)
    end = time.time()

    quick_sort_elapsed = end - start

    numbers2 = list(numbers)
    start = time.time()
    success, median_r = RMedian.r_median_search(numbers2)
    end = time.time()

    r_median_elapsed = end - start

    numbers3 = list(numbers)
    start = time.time()
    median_quick_select = QuickSelect.quick_select(numbers3, math.ceil(len(numbers3)/float(2)), 0)
    end = time.time()

    quick_select_elapsed = end - start

    if median_r != median_quick_sort:
        print("R Median Fail")
    # print ("Quick sort:" + str(median_quick_sort) + ", R median:" + str(median_r) + ", Quick Select Median:" + str(median_quick_select) )
    # print ("Quick sort time:" + str(quick_sort_elapsed) + ", R median time:" + str(r_median_elapsed) + ", Quick Select median time:" + str(quick_select_elapsed))
    # print ("")
    return  quick_sort_elapsed, r_median_elapsed, quick_select_elapsed, success