[{"n":"Binary search","u":"/binary-search/","k":"algorithm","s":"Find a key in a sorted array. Compare the key with the middle item, and keep only the half that can hold the key.","a":["half-interval search","logarithmic search","bisection search"],"r":"Searching","t":"2B7QDX"},{"n":"Insertion sort","u":"/insertion-sort/","k":"algorithm","s":"Sort an array one item at a time. Take the next item and move it left until the item before it is not larger.","r":"Sorting","t":"3NS7RT"},{"n":"Merge sort","u":"/merge-sort/","k":"algorithm","s":"Sort an array by divide and conquer. Sort each half, then merge the two sorted halves into one sorted array.","a":["mergesort"],"r":"Sorting","t":"4MRG7S"},{"n":"Search in a sorted array","u":"/search-in-sorted-array/","k":"problem","s":"Given a sorted array and a key, find an index of the key, or report that the key is not in the array.","a":["sorted search","ordered search"],"r":"Searching","t":"6SRCHA"},{"n":"Sorting","u":"/sorting-problem/","k":"problem","s":"Put the items of a sequence in non-decreasing order by a key.","a":["sort","the sorting problem"],"r":"Sorting","t":"5SRTPB"},{"n":"Loop invariant","u":"/loop-invariant/","k":"concept","s":"A statement about the variables of a loop that is true before each step. It is the main tool to prove that a loop is correct.","a":["invariant"],"r":"Foundations","t":"7NVRNT"},{"n":"Asymptotic notation","u":"/asymptotic-notation/","k":"definition","s":"The notations O, Ω and Θ compare the growth of two functions for large inputs and ignore constant factors.","a":["big O notation","Landau notation","big Theta","big Omega"],"r":"Foundations","t":"8ASYMP"},{"n":"Comparison model","u":"/comparison-model/","k":"model","s":"A model where an algorithm learns about its input only by comparing two items. The cost is the number of comparisons.","a":["decision tree model","comparison-based model"],"r":"Foundations","t":"9CMPMD"}]