Skip to main content

A review on Searching Algorithms

Philnits sure is useful. The review reminded me of Searching 101 from which I only remember the Linear Search algorithm. Linear search is a method of searching in sequential order. Given the following values:

A = {4, 20, 31, 50, 23, 11, 30}
index 1 2 3 4 5 6 7

Searching is performed in sequential order which means if we are looking for the number 50, we start comparing it from values of index 1 until we reach the search item.

Another sorting algorithm is the Binary Search which is very useful when the elements are already sorted. Given the following values:

A = {1, 12, 30, 34 ,50 ,56, 67, 78, 89}
index 1 2 3 4 5 6 7 8 9

We would like to look for the number 67,

We first get the median value:
M = (1+9)/2 = 5
A[5] = 50
We disregard the lower half because 50<67.

The lower bound now becomes M+1.
L = M+1 = 5 +1 = 6

The new median now becomes M = (Lower bound + Upper bound)/2
M = (6 + 9) / 2 = 7.5
We round this off so it becomes 8.
A[8] = 78
78>67 so we disregard the upper half.
Since we disregarded the upper half, the new search range would now be from index 6 up to 8. Unlike earlier where we disregarded the lower part, we immediately took the value to the right of the median as the lower bound (L = M+1). This time however, since we disregarded the upper bound, we now get the upper bound instead of the lower bound: U = M-1.
U = 8-1 = 7
Since we already finished comparing with the lower bound 6, and there is no other index to compare, we compare with the upper bound 7.
A[7] = 67?
A[7] = 67 = 67

We now have the answer.


Comments

Popular posts from this blog

How to register a business name

Attending business summits and conferences is a big help to those who belong to the quite "techy" (technological or technical) industry. Being a graduate of one, I had less knowledge in the field of entrepreneurship. Enrolling myself in business administration gave me quite the knowledge to be a part of the business world and thus improve my entrepreneurial skills. I now would like to share this information that I got familiar with (and I managed to get a copy of the entire process from the 6th Mindanao ICT Congress): How to Register a Business Name (in the Philippines) ----------------------------------------------------------------------------------------------- SINGLE PROPRIETORSHIP Applicant must secure 2 copies of registration form and pay Php 300.00 (rate may change) for single proprietorship registration processing fee. The registration shall be valid for five (5) years. A surcharge of Php 100.00 is imposed if renewal is filed beyond the three (3) month grace period, c

Adding a Footer to the DataGridView component

I have been searching for sites and forums that would give me a any hint on having a footer on the .net DataGridView control. It was frustrating. I found some, but not what I was looking for. I use windows forms. It would have been easier if I was into web. I decided to create one for myself. It's not complete, but it works with me. It needs improvement and I hope that some programmers who might pass through this blog will help me with it :D. Limitations: Cannot set Footer values during design time. Can sometimes hide a row when scrolled to the last item in the grid. What I did was just create a user control that inherits the DataGridView control and add a StatusStrip to act as the footer. public partial class MyDataGridView : DataGridView { public StatusStrip Footer { get { return (StatusStrip)this.Controls["Footer"]; } } private bool _footerVisible; [Browsable(false)] /// /// Sets or Gets the va

Using Firebird with ASP.net

In my previous post , I was able to connect a firebird 2.0 database to asp.net using controls. The next goal was to connect to a firebird database using the firebird.net engine and using the repeater control. I however, was able to use the firebird.net engine to connect to the firebird database but not to the repeater control. I used the html table tag. I've created a simple asp.net demo displaying the contents of a firebird database on page load. Here are the steps: 1. Things Needed: Firebird 2.0 Server Firebird 2.0 Client Visual Web Developer 2. In Visual Web Developer, create a new ASP.net Website (using C# as the programming language). The project will have a default page named Default.aspx. Make sure that the code is separate from the page (ex. Default.aspx.cs is separate from Default.aspx) 3. On the Website menu, click on Add Reference. 4. Select the Firebird - ADO.net 2.0 Data Provider and click Ok. 5. Add using FirebirdSql.Data.FirebirdClient; to the "using" sec