submit urlsubmit rss feedadd directory

article

In computer science, a search algorithm, broadly speaking, is an algorithm that takes a problem as input and returns a solution to the problem, usually after evaluating a number of possible solutions. Most of the algorithms studied by computer scientists that solve problems are kinds of search algorithms. The set of all possible solutions to a problem is called the search space. Brute-force search or "naïve"/uninformed search algorithms use the simplest, most intuitive method of searching through the search space, whereas informed search algorithms use heuristics to apply knowledge about the structure of the search space to try to reduce the amount of time spent searching.

Uninformed search


An uninformed search algorithm is one that does not take into account the specific nature of the problem. As such, they can be implemented in general, and then the same implementation can be used in a wide range of problems thanks to abstraction. The drawback is that most search spaces are extremely large, and an uninformed search (especially of a tree) will take a reasonable amount of time only for small examples. As such, to speed up the process, sometimes only an informed search will do.

List search

List search algorithms are perhaps the most basic kind of search algorithm. The goal is to find one element of a set by some key (perhaps containing other information related to the key). As this is a common problem in computer science, the computational complexity of these algorithms has been well studied. The simplest such algorithm is linear search, which simply examines each element of the list in order. It has expensive O(n) running time, where n is the number of items in the list, but can be used directly on any unprocessed list. A more sophisticated list search algorithm is binary search; it runs in O(log n) time. This is significantly better than linear search for large lists of data, but it requires that the list be sorted before searching (see sorting algorithm) and also be random access. Interpolation search is better than binary search for very large sorted lists with fairly even distributions. Grover's algorithm is a quantum algorithm that offers quadratic speedup over the classical linear search for unsorted lists.

More on [ Search algorithm ]


directory of related categories

 
directory of related topics

Computer Database Theory

 
Sorting_and_Searching RSS feed
Sorting and Searching - Twitter Search

searching for "1E" in Flickr, and sorting on Interestingness, turned up a few results I could've lived without...
pajp (Rasmus Sten) Mon, 02 Nov 2009 21:29:12 -0000
searching for "1E" in Flickr, and sorting on Interestingness, turned up a few results I could've lived without...
Warm-ups for the next section on sorting and searching: http://tinyurl.com/ycwbbfz , http://tinyurl.com/y88n2z8
mucs305 (data and algorithms) Sun, 01 Nov 2009 20:51:44 -0000
Warm-ups for the next section on sorting and searching: http://tinyurl.com/ycwbbfz , http://tinyurl.com/y88n2z8
Twitoaster looks like it could be a good app for sorting and searching in twitter http://ow.ly/wK1Q
JuntosMarketing (Carolyn Loton) Tue, 27 Oct 2009 22:55:08 -0000
Twitoaster looks like it could be a good app for sorting and searching in twitter http://ow.ly/wK1Q
yee. got index almost work. pagination, sorting, and TEMPLATES WORK! i haven't tested searching but let's hope i get this work as well. yeee
n0namec (kristian) Mon, 26 Oct 2009 19:57:39 -0000
yee. got index almost work. pagination, sorting, and TEMPLATES WORK! i haven't tested searching but let's hope i get this work as well. yeee

 
Subscribe to Sorting_and_Searching RSS feed

directory of related sites

404 An Improved Comb Sort with Pre-defined Gap Table - The original comb sort is vulnerable to seriously degraded performance with certain repetitive input sequences. This variation addresses those problems and bounds worst case performance.
Meta Description: [ An Improved Comb Sort with Pre-Defined Gap Table. ]

Common comparison sorts - Explanation, algorithm analysis, empirical data, and source code for the bubble, heap, insertion, merge, quick, selection, and shell sorts.
Meta Description: [ Description, source code, algorithm analysis, and empirical results for bubble, heap, insertion, merge, quick, selection, and shell sorts. ]

Compact Guide to Sorting and Searching - Algorithms and data structures. Source code in C and VB is included. Demonstration applets in Java.
Meta Description: [ Algorithms for sorting and searching. ]

Comparison sort - From Wikipedia, the free encyclopedia. Definition, examples, lower bound.

500 Dictionary Implementation using Red and Black Tree - Documentation of a C++ project by Dogan Can and Serdar Kemal Balci.
Meta Description: [ A dictionary implementation in C++ ]

Discussion of Sorting Algorithms - A web tutorial by Mark Baker.

Exact string matching algorithms - Common pattern search approaches with C implementations.
Meta Description: [ EXACT STRING MATCHING ALGORITHMS Animation in Java ]

Fast Median Search - Overview of algorithms to find the median in a list of values; implementations and links are also provided.

500 Fast multi-pattern search - A fast algorithm for multi-pattern searching by Sun Wu

Fibonacci search in C - Fibonacci search and C sample code.
Meta Description: [ Free C implementation of the Fibonaccian search algorithm ]

FlashSort - Sorting by in place permutation with time complexity O(n) using an auxiliary vector. Papers, animations and implementations.
Meta Description: [ A newly developped fast in-situ permutation sort algorithm with time complexity O(n). ]

Fuzzy Search - Approximate search resources on ITman homepage.
Meta Description: [ fuzzy approximate search information retrieval ]

GNU libavl - Details of this collection of binary search tree and balanced tree library routines by Ben Pfaff. Etext in HTML/PDF/PS and source distribution.

Levenshtein Algorithm For Error-Tolerant Search - Resources on the Levenshtein Algorithm for fault-tolerant search. Website contains online demos and efficient implementations.
Meta Description: [ Resources on the Levenshtein Algorithm for fault-tolerant search. Website contains online-demos and efficient implementations. ]

Parallel and Sequential Sorting Algorithms - An explanation of the sorting algorithms Quicksort, Heapsort, Shellsort, Mergesort, sorting networks such as Odd-even transposition sort, Bitonic sort and parallel sorting algorithms for two-dimensional processor arrays. All including animations.
Meta Description: [ Description of sorting algorithms (course material), all including animations ]

Postman's Sort - A linear time general purpose sorting algorithm. Included is a description of the algorithm and downloadable executables for Windows computers.
Meta Description: [ Postman Sort Program and Consulting ]

500 Robsort Sorting Algorithm - An O(n!) algorithm with downloads for Win98 and Unix platforms.

404 RumAVL - An ANSI C implementation of threaded AVL trees.
Meta Description: [ freshmeat maintains the Web's largest index of Unix and cross-platform open source software. Thousands of applications are meticulously cataloged in the freshmeat database, and links to new code are added daily. ]

Search Algorithm - From Wikipedia, the free encyclopedia. Classification, summaries of the popular searching algorithms, links.

Search Methods in AI - Brief summary of fundamental problem space search algorithms.

Searching Algorithms - Overview of many sorting techniques and corresponding links.

Sequitur - Infers an hierarchical structure from a sequence of discrete symbols. Site includes examples, source code, description, publications, and an on-line demonstration.

404 sortchk - A simple test suite to measure the costs (in terms of needed comparisons and needed data moves) of different sorting algorithms. Unix sources.
Meta Description: [ freshmeat maintains the Web's largest index of Unix and cross-platform open source software. Thousands of applications are meticulously cataloged in the freshmeat database, and links to new code are added daily. ]

Sorting Algorithm - From Wikipedia, the free encyclopedia. Classification, summaries of the popular sorting algorithms, links.

Sorting Algorithm Examples - Collection of sorting algorithms in C
Meta Description: [ Description of sorting algorithms, and source code ]

Sorting Algorithms - Overview of many sorting techniques and corresponding links.

Sorting Algorithms Visualized - Applet visualizing various sorting algorithms, English version of Peter Weigel and Andreas Boltzmann applet.

Sorting and Searching Algorithms By Thomas Niemann. - Collection of algorithms for sorting and searching from arrays to B-Trees - theory, examples, implementation.

String Searching - From Wikipedia, the free encyclopedia. Definition, classification, common algorithms, links.

String Searching With Suffix Trees - Fast String Searching With Suffix Trees by Mark Nelson

Suffix Tree - ANSI C implementation of E. Ukkonen's algorithm that makes it convenient to do string matching against a data set in O(N) time. Includes source code, an interface in Perl, and a write-up.
Meta Description: [ ANSI C implementation of a Suffix Tree ]

Ternary Search Trees - Algorithm for search. PDF file and examples in C.

Three Dimensional Bubble Sort - A specification of a new 'bubble sort' in three or more dimesions, with illustrative images.

Understanding SoundEx Algorithms - Article describing and discussing the SoundEx searching algorithm and enhancements to make it more accurate. Includes SoundEx conversion form and Open licensed source code in C, JavaScript, and Perl.
Meta Description: [ SoundEx How to: Description of the SoundEx phonetic search index algorithm, differences between various versions used, and enhancements to the original patented version - source code in C, Perl, JavaScript, and VB included. - Creativyst, Inc. Docs - ]

WASA - A Java implementation of the Wealthy Adaptative Search Algorithm, a constraint-solving algorithm using a stochastic approach. Sourceforge/GPL.

Sorting_and_Searching related videos

LMai : Context based search, Artificial Intelligence

Sobha Renaissance Information Technologies announced a path breaking innovation in the realm of Artificial Intelligence applied on search engines called LMai (Latent Metonymical Analysis and Indexing). The event hosted by SRIT in Bangalore on May 07th 2007 at the Oberoi Hotel, MG Road was attended by key technology and business Media. Spokespersons from the company included Dr. Madhu Nambiar MD & CEO, Mr. Joseph N J Director Marketing, Dr. P S Ramkumar Executive Director iHCx and Syed Yasin R&D Project Lead.

Sorting_and_Searching related videos

 

HOMEADVERTISINGABOUT US

articlesartsbusinesscomputersgameshealthhospitalshomekids & teensnewsmobilephysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld


Submit a Site About Become an Editor