Introduction To Searching And Data Structures Computer Science Essay


This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Searching something in a list is a common task. That something is normally called as a record(s). I.e. employee number , employee address etc. The goal of a search algorithm is to find the item/record in shortest possible time, keeping in view the efficient resource utilization. The resource in question may be Storage requirements, CPU utilization/Total execution time etc.

Data Structures

To store and search/access the data efficiently a number of data structures are used. Some of the commonly used data structures are arrays, stacks, queue, linked lists, tree, heaps etc. What to use where is the main concern. Every data structure has its pros and cons but the concept of efficiency or complexity is important when comparing algorithms. Most of the time mistake commited in choosing an algorithm is to put a side performance characteristic. Speedy algorithms are often more complex, keeping this in view, implementers are often ready to adopt a slower algorithm, provided it remains simple. Sometimes it also happens that a faster algorithm is also not too complex, and if we can bear little complexity, it is a small price to pay in return for a faster algorithm.

Types of input data

Data to be searched are found in two basic forms as listed below:

1)un Sorted data: Unsorted data is the data in its original form. No operation, besides simple insertion, has been performed on the data structure in which data it is stored. This type of data is normally used in linear searching algorithms.

2)Sorted Data: this types of data relates to data structure in which data is arranged in alphabetical order or in ascending / descending order.

Classes of Algorithm

Broadly classifying algorithms lie in following three classes:

Algorithms for sub structures of a specific structure.

Algorithms for virtual search spaces.

Algorithms for quantum computers

Algorithms for sub structures of a specific structure

Combinational search is the term normally used for algorithms that search for a sub structure of a specific structure. Such as a tree, a heap, a finite group, a string and so on. The name combinatorial optimization is normally used when the goal is to search a sub-structure with a minimum (or max) value of some node/object. In a computer a sub structure is normally represented by a set of variables with constraints so these problems can be considered as a special case of discrete optimization or constraint satisfaction. But they are normally solved more abstractly where the internal representation is not mentioned explicitly.)

An extensively used and studied is an important subclass of graph algorithms. These algorithms are used for locating sub structures in a given graph - such as sub graphs, circuits and so on. Prime examples of such algorithm include Kruskal's algorithm, Dijkstra's algorithm and the algorithm. Another important subclass of this category, which search for patterns within strings, are the string searching algorithms. A well known example is Knuth-Morris-Pratt algorithm.

Algorithms for Virtual Search spaces:

These are the algorithms used in constraint satisfaction problem (CSP). CSP are the problems where the objective is to find a set of values for certain variables that will satisfy specific mathematical equations. These algorithms are also used when we wish to find particular variable assignment which will minimize or maximize a certain function of those variables. Algorithms for such problems are "uninformed" or "naive" search commonly known as brute force search and different types of heuristics based algorithms that try to use partial understanding / knowledge about structure of the space namely constraint generation, constraint propagation and linear relaxation.

Local search methods are a sub class that takes the elements of a search space as vertices of graph. Whose edges are defined by some heuristics related to the case. They search the space by moving from element to element following the edges. i.e. stochastic search. To further elaborate stochastic search. Stochastic search is a form of heuristic search which can be generalized by following steps:

Create a set of prospective solutions.

Choose some elements from the set so as to prefer elements with best heuristic scores.

Utilize the above chosen to create more random variations.

Include these variations in the set, while deleting less important to maintain a constant size.

This class also encompasses Meta heuristics algorithms. A Meta heuristics is simply an algorithmic approach to optimize other heuristics in order to find acceptable solution or simply finding excellent heuristics for a specific problem. i.e genetic programming which is a branch of genetic algorithm.

Tree algorithms also come under this class. We will explain tree algorithms in detail in chapter 2 but for a brief introduction. They are built representing a Tree (Inverted tree) like structure parent - child relationship exists between different nodes. These tree can be traversed (visiting / processing each node of the tree) in different fashions i.e mainly exhaustive and heuristic methods. Exhaustive methods include breadth first search which is basically a level by level search and another type is depth first search which further has three orders (i.e Pre-order, In-order, Post-order).heuristic methods example is backtracking etc

Lastly (but not the least) another sub class consists of algorithms mainly used in Artificial Intelligence. For instance minmax is a prime example of such kind of algorithms. This algorithm basically tries to find the best possible solution based on best choice of action. The most common use of such algorithms is in game programming.

Applications of Algorithms

Search algorithms are used in variety of applications. Ranging from medical to science, educational to commercial, data management to data entry etc.

Some of the major applications/uses of algorithms are as listed below:

Internet Search Engines


Information systems

Bio Information

Game programming



Writing Services

Essay Writing

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.