An approach to solving a computing problem by trying every possible solution in turn until the correct one for the specific case in hand is found. A common case is searching for the first occurrence of a given string s1 within a larger string s2 by attempting to match s1 at every position in s2 until a match is found. Algorithms based on brute force are often easy to implement, but are generally computationally expensive and quickly cease to be viable when the number of possible solutions becomes very large. They are the baseline upon which more sophisticated and efficient algorithms seek to improve.