• Around The HomeToggle Menu

    • Entertainment
    • Productivity
    • Smart Home
  • FamilyToggle Menu

    • Parenting
    • Toys
    • Pets
    • Travel
  • Product ReviewsToggle Menu

    • Phones
    • Tablets
    • Laptops
    • Desktops
    • Wearables
    • Audio
    • Cameras
    • Headphones
    • Printers
    • Smart Home
    • TVs
    • Gaming and Video
  • One Cool ThingToggle Menu

    • Frugal Tech
    • Kickstarters
    • Videos
Techwalla
  1. Home
  2. Around The Home
  3. Productivity
  4. How to Understand Algorithms

How to Understand Algorithms

March 31, 2015
By: John Lister
  • Share
  • Share on Facebook

An algorithm is simply a set of rules to follow in a specific situation. Humans use algorithms all the time: for example, when leaving the house you may follow an algorithm that could be expressed as "Check if the sky is gray; If Yes, take umbrella. Check if the sun shining; if Yes, take sunglasses. Leave house." All computer applications boil down to one of more algorithms, each of which carries out a particular task.

Video of the Day

empty diagram
A flowchart is a great way to visualize how an algorithm works.
credit: anyaberkut/iStock/Getty Images

Characteristics of Algorithms

The defining point of an algorithm is that it leaves no room for subjectivity or judgment. An algorithm handles data and takes resulting action in a fixed manner according to its set of rules. In its purest form, whenever you put the same inputs into an algorithm you'll get the same outcome. A computer using an algorithm has the advantage over humans in that it will always carry out the relevant actions correctly and quickly; humans have the advantage in that they can alter and even abandon algorithms if doing so is advantageous in a particular situation -- a skill you could describe as "common sense."

Comparing Algorithms

Assuming an algorithm is correctly designed to give the desired outcome in any particular situation, the main point of comparison between two outcomes is speed. The Topcoder site notes that algorithms are normally rated based on the time it would take to carry out a particular task with the set of inputs that makes the process the most complicated and time-consuming. For example, when trying to match a piece of data with something in a lengthy list, the algorithm could just check the list one item at a time. However, a better solution is to put the list in order, such as alphabetical or numerical, then compare the data with the middle entry and see if it is "higher or lower." Using this result, the algorithm can eliminate half the entries as non-matches immediately, then repeat the process until it finds a match, likely in far fewer steps than checking the list in full.

Approximations & Heuristics

Some problems are particularly difficult for an algorithm to solve. A classic example is the scenario of a travelling salesman who needs to visit several cities and find the route with the shortest total traveling time. The sheer number of possible options makes this such a complicated task that it would take an algorithm too long to explore every possibility and come up with the perfect answer. Instead the answer is to mirror human behavior by taking the first possible solution that meets an acceptable level of variation from the optimal route -- in other words, the first answer that is good enough, rather than perfect. This concept of using algorithms to get a result that favour practicalities over perfection is sometimes known as heuristic analysis.

Key To Understanding

Jonathan Cutrell, technology director at Whiteboard, argues that simply learning the code needed to write an algorithm in a particular programming language isn't enough to get the best results. Instead programmers need to take the time to understand the purpose of every component of an algorithm's code, concentrating on the How and Why rather than just the What. This approach will help adapt and improve algorithms for particular situations. Cutrell also notes the importance of understanding how a particular algorithm interacts with other software elements such as applications and even an operating system. These interactions might change the most efficient approach to an algorithm compared with the approach you'd take when designing it in isolation.

Show Comments

Related Articles

What Is Desk Checking?

What Is Desk Checking?

Around The Home
Productivity
By: Carol Finch
My Home Is Smarter Than Your Home

My Home Is Smarter Than Your Home

Around The Home
Smart Home
By: David Isaac
Choose a Password Manager to Protect Your Security

Choose a Password Manager to Protect Your Security

Around The Home
Productivity
By: Jackie Dove
Difference Between Data Flow Diagram & Flow Chart

Difference Between Data Flow Diagram & Flow Chart

Around The Home
Productivity
By: Ginny Putscher
What Is a SharePoint Taxonomy?

What Is a SharePoint Taxonomy?

Around The Home
Productivity
By: JaniceU
Your Kids Should Learn to Code. Here's Why.

Your Kids Should Learn to Code. Here's Why.

Family
Parenting
By: Jacqueline Emigh
  • HOW WE SCORE
  • ABOUT US
  • CONTACT US
  • TERMS
  • PRIVACY POLICY
  • COPYRIGHT POLICY
  • Advertise

An error occurred. Try again later.

Thanks for signing up!
© 2018 Leaf Group Ltd. Leaf Group Media

Get great tech advice delivered to your inbox.

Keep your family productive, connected, entertained, and safe.

Please enter a valid email.