Do we use these data structures?

  • Thread starter Thread starter Avichal
  • Start date Start date
  • Tags Tags
    Data Structures
Click For Summary

Discussion Overview

The discussion revolves around the applicability of data structures and algorithms, such as stacks, queues, binary search trees, and heaps, outside of computer science. Participants explore whether these concepts are utilized in everyday human activities and decision-making processes, as well as their relevance in various fields beyond computing.

Discussion Character

  • Exploratory
  • Debate/contested

Main Points Raised

  • Some participants question whether data structures like binary heaps are practical for organizing physical items, suggesting that simpler methods may be preferred in everyday life.
  • Others argue that graph data structures are indeed used in fields like transportation for route planning, indicating a broader application of these concepts.
  • A participant points out that while algorithms are effective for computers, humans tend to use different methods for similar tasks, such as sorting and searching.
  • Mechanical card sorters and library cataloging systems are cited as examples of real-world applications that resemble algorithmic principles.
  • One participant suggests that humans often employ strategies akin to computational algorithms, such as binary search in guessing games or sorting methods similar to insertion sort.
  • Another participant emphasizes that many everyday actions, like standing in line or organizing papers, reflect the principles of data structures, even if people do not label them as such.
  • There is a suggestion that the naming of data structures may have been influenced by pre-existing real-life strategies, raising questions about the origins of these concepts.
  • One participant expresses uncertainty about the mechanisms of natural intelligence and how they relate to the use of computational techniques in human behavior.

Areas of Agreement / Disagreement

Participants exhibit a mix of agreement and disagreement regarding the relevance and application of data structures outside of computing. Some acknowledge that these concepts are used in various contexts, while others question their practical utility in everyday scenarios.

Contextual Notes

The discussion highlights limitations in understanding how natural intelligence operates compared to algorithmic approaches, suggesting that this remains an open question.

Avichal
Messages
294
Reaction score
0
I have seen many data structures like stacks, queue, binary search tree, avl tree etc.
Except stack and queue do we actually use these data structure outside the field of computers?

Suppose I want to store by books(or any other stuff) according to some priority I would not use a binary heap to store my things, will I? I will just keep them in sorted order.

So the question is - that are these data structures only optimal for computers or can they be used outside computers too?
 
Technology news on Phys.org
Graph data structures are used in different disciplines. For example, the transportation industry relies heavily on graphs (the abstract data type) in order to plan shortest routes, most efficient routes, etc.. The Traveling Salesman Problem is an example of using data structures for business travel (not computers).

Pick up some books on algorithms or advanced data structures and you'll get a better understanding of their uses outside of computers / programming.
 
Okay I guess I didn't make my question clear enough. What I meant to ask was that the algorithms we study - are they good enough to be used by humans too. Of - course they are good for the use of computers but we don't seem to use these algorithms when we have to do a similar task.
For eg:- We won't use a min-heap to find minimal element, we won't use quicksort to sort elements etc.
 
Mechanical card sorters use a bin sort, where operator has to collect and reload the input tray for each charcter of the field used to sort the cards.

Libraries use catalogues similar in concept to a search tree, you select a draw based on the leading letters of a title (or author), then further reduce this to a group of cards based on the tabs separating the groups of cards in each drawer.
 
It's not about the quality of the algorithm. It's the fact that a computer solves a task algorithmically and humans have different ways of doing it.

The way humans sort things is pretty the same as the insertion sort algorithm: they find the highest element, move it to the top, then repeat for the next highest element.

Binary search is used many times in by humans too, for example those stupid games where some says "guess a number" and then tells if you it's higher or lower, etc.

There's many examples of ways in ways in which humans do use computational algorithms, and as you have noticed, many examples of ways in which they prefer to use natural intelligence.
 
When you look up something in a dictionary or phone book, just for example, you probably are approximating a binary heap algorithm. Besides opening the phone book randomly and starting to do a binary search, I know that Smith ('S' in this example) is already towards the end of the alphabet, so I'm not going to open the phone book right in the middle to start searching for Smith. To search for Abbott, I would open it immediately very near the beginning.
 
What I actually wanted to ask was - In a computer science course we study different algorithms and data structures to efficiently store data and get our results. Of-course these methods are used in programs and applications.

But why don't we use these techniques outside the realm of computers. If I want to keep my books such that latest one is one the top shelf why don't people use a heap or something?
OR perhaps people do use these techniques but don't realize that these are named computer techniques?
 
Avichal said:
If I want to keep my books such that latest one is one the top shelf why don't people use a heap or something?
OR perhaps people do use these techniques but don't realize that these are named computer techniques?

These abstractions are used all the time. We stand in a queue at the grocery store (but in the US, we call it a waiting line, not a queue or FIFO). We stack papers and go through them starting with the one on top (last in, first out, or LIFO--but people have no name for this approach). Some organizations have call lists, where the starting caller contacts maybe 5 people, and each person then contacts another 5 people. And there are lots of other examples. We sort things to make them easier to find--as in the phone book.

The fact is, the data structures came AFTER all those real-life strategies, and programmers gave them descriptive names and created yet newer ones with more precise definitions (think, doubly linked lists) to help solve programming problems. That's why so many have names from real life--tree, heap, pruning, etc
 
Avichal said:
why don't we use these techniques outside the realm of computers. If I want to keep my books such that latest one is one the top shelf why don't people use a heap or something? OR perhaps people do use these techniques but don't realize that these are named computer techniques?

Since the mechanism of natural intelligence is not yet understood, I think this is an open question.

No doubt we know all of the physical laws required to create a computerised "human brain" but we don't know how to fit the parts together.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 11 ·
Replies
11
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
Replies
15
Views
3K
Replies
10
Views
5K
Replies
19
Views
4K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 22 ·
Replies
22
Views
2K