Translate

Sunday, November 3, 2013

Data Structures: Efficiency is Key!

                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. 

4 comments:

  1. 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.

    ReplyDelete
  2. I 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.
    The 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.

    ReplyDelete
  3. Hi Sander,
    I 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.

    ReplyDelete
  4. 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