Suppose you want to sort a deck of cards by color, suit, and face value. Consider how you might approach the task if you were working by yourself. Would you spread the cards over the tabletop and repeatedly pick the lowest value card to make a sorted stack? Alternatively, would you designate a pile for each suit and insert cards into the piles in sorted order? We will call the sequence of activities you use to turn the pile of unsorted cards into sorted cards your workflow. Workflow is not a computing-specific term; it is a general term for the procedure you use to turn input into your choice of output.

A single person sorts a shuffled deck of cards by color, suit and face value. The output is four, sorted, same-suit piles.
A single person sorts a shuffled deck of cards by color, suit and face value. The output is four, sorted, same-suit piles.
You spread the unsorted cards on the tabletop, leaving an open area as a space to work. The working space will eventually hold four piles, one for each suit. Pick a card from the unshuffled deck and place it in the matching pile. Keep the piles sorted as you add new cards and repeat this process until you sort all the cards. Eureka!

No matter which card sorting strategy (algorithm) you employ, you will need to make many comparisons (operations), one at a time. In this case, you are acting like a serial program, executing a sequence of operations, one at a time. No matter how clever your sort algorithm, you will eventually reach a limit on how quickly you can perform this sorting task by yourself.

 
©   Cornell University  |  Center for Advanced Computing  |  Copyright Statement  |  Inclusivity Statement