1. A method for sorting a sequence of one or more input objects, comprising the steps of: identifying a property that is exhibited by a sequence of one or more input objects, wherein said property indicates whether said sequence of one or more input objects is mostly sorted and is used to select one of a plurality of buffers for storing each input object; determining whether each input object from the sequence of one or more input objects exhibits the property; storing each of the one or more input objects into one of said plurality of buffers, wherein an input object is stored in a first buffer when said input object exhibits the property and an input object is stored in a second buffer that takes the input objects that could not be put into the first buffer when said input object does not exhibit the property; sorting each of the one or more input objects in each buffer, wherein the first buffer is sorted with a first sorting algorithm which is an insertion sort on a local region of the first buffer and the second buffer is sorted with a second sorting algorithm, wherein the second sorting algorithm is a sort algorithm for sorting objects which are not substantially ordered and wherein the first sorting algorithm is different than the second sorting algorithm; and merging the one or more input objects in each buffer into a sequence of one or more input objects, wherein the first sorting algorithm and the second sorting algorithm are distinct from each other and from a process that performs the merging.