That sounds easy to check. Can you expand on this, because I don't understand.
It’s only O(n), but if I check that assertion in my binary search function then it might as well have been linear search.
void process_list(List aList)
in(aList.isSorted, "List must be sorted!")
do
{
// do something
}
However the O() cost of calling isSorted() has an impact on overall cost for process_list() on every call, hence why the way contracts are executed is usually configurable in languages that have them available.Whats trivial for a very small list, may be a no-go for gigabyte-sized lists.