Data
structures are one of the most integral parts of computer software. These days
our computer processors can go through billions of calculations per second but
searching, accessing, inserting, and deleting data can take a large chunk of
the processing power. This is where data structures save the day, as long as
they are built and implemented properly. Data structures gather the data
storing and organizing it for efficiency. There are many different types of
data structures and many different application uses for them. Arrays, lists,
binary trees, heaps, b-trees, and hashes are all ways to manage data for an
application. Data structures are also used to create efficient algorithms. In
combination, data structures and the resulting algorithms save a great deal of
processing power that can be used on more important tasks.
The big
O notation is used to analyze the efficiency of all the tasks that go along
with data structures such as searching, inserting, deleting, and the amount of
space they use. Most commonly the notation is used to describe the average and
worst case scenarios. This is analogous to looking for noodles in a grocery
store. The aisles are nicely divided by food categories so you go look in the
pasta aisles and voila there it is the first item in the row. But it may be the
case that you are at a brand new grocery store and the noodles you are looking
for are at the end of the aisle so now you have to walk an extra 30 feet. Now
to the actual notation. Common big O notations include O(1),
O(n), O(n2), O(n log n) where O() is the big O and the time
function is inside the parentheses. Each data structure has their own
efficiency for each action.
Data structures and algorithms are very important in Computer Science. And nowadays, many companies include data structures and algorithms in interview questions. They expect new grads have to know and solve problem using the most efficiency method. There are some debate surrounding the issue whether or not the companies should determine to hire a new grad based on his knowledge about data structures and algorithms. And I think your blog has a very good point.
ReplyDeleteI like the way you have started your post. Importance of data structure in computer science is explained well. You have explained what a data structure before talking about it so that everyone one will understand what you are going to talk further.
ReplyDeleteThe post is wisely divided into two paragraphs. First paragraph explains in general about data structure and second paragraph talks in detail about efficiency and big O notation.
Overall, it is an informative post.
Hi Sander,
ReplyDeleteI feel that this was a good post about Data Structures. you are quite right that they are extremely important to our modern computer programming. I am not sure if I get your example of big O notation, but then again, any discussion about O notation makes my head hurt. I think you should have tried to give a few examples about what each type of O notation would represent. other than that, good post.
Hi Sander, this is a nice post. I agree with you that data structures are very important to our programming, and to analyze the efficiency of different data structures, we need to apply the concept of Big O notation. It is definitely not sufficient to simply set up a timer and time how fast a program with different structures can run, but to come up with different data set, record the time and analyze the Big O of each. Overall, this is a really informative post.
ReplyDelete