answersLogoWhite

0

Even though the bounty is gone, since the accepted answer gives the extremely-false impression that binary-trees are not very useful, I will post another answer.

To squabble about the performance of binary-trees is meaningless - they are not a data structure, but a family of data structures, all with different performance characteristics. While it is true that unbalanced binary trees perform much worse than self-balancing binary trees for searching, there are many binary trees (such as binary tries) for which "balancing" has no meaning.

The reason that binary trees are used more often than n-ary trees for searching is that with every comparison in a (balanced) binary tree, you eliminate about half the tree from consideration. In contrast, with an n-ary tree, you can eliminate (n-1)/n of the tree using log(n) comparisons (using a binary search).

Applications of binary trees
  • Binary Search Tree - Used in many search applications where data is constantly entering/leaving, such as the map and set objects in many languages' libraries.
  • Binary Space Partition - Used in almost every 3D video game to determine what objects need to be rendered.
  • Binary Tries - Used in almost every high-bandwidth router for storing router-tables.
  • Hash Trees - used in p2p programs and specialized image-signatures in which a hash needs to be verified, but the whole file is not available.
  • Heaps - Used in heap-sort; fast implementations of Dijkstra's algorithm; and in implementing efficient priority-queues, which are used in scheduling processes in many operating systems, Quality-of-Service in routers, and A* (path-finding algorithm used in AI applications, including video games).
  • Huffman Coding Tree (Chip Uni) - used in compression algorithms, such as those used by the .jpeg and .mp3 file-formats.
  • GGM Trees - Used in cryptographic applications to generate a tree of pseudo-random numbers.
  • Syntax Tree - Constructed by compilers and (implicitly) calculators to parse expressions.
  • Treap - Randomized data structure used in wireless networking and memory allocation.
  • T-tree - Though most databases use some form of B-tree to store data on the drive, databases which keep all (most) their data in memory often use T-trees to do so.
User Avatar

Wiki User

12y ago

What else can I help you with?

Continue Learning about Engineering

What are the various applications of linear search in real time?

Linear search is necessary when we must search unordered sets. Linear search times across huge sets can be improved significantly by dividing the set amongst two or more threads that can execute on independent CPU cores.


Where are trees in data structures implemented in the real world?

First off, there are several types of trees in data structures. each with different uses and benefits. The two most common are binary trees and binomial trees. Binary trees are used most commonly in search algorithms. The benefits of this is that a search can be performed in O(lg(n)) time, instead of the O(n) time that a sequential search takes. An example from the real world of a binary tree in action is in databases, where indexes are organized in a binary tree, thus enabling faster searching. Binomial trees are usually used in communication, particularly when distributing or aggregating information. A real world example comes from supercomputers, where multiple processors are all working simultaneously. In order to aggregate or distribute data, a binomial tree structure is commonly employed.


What are the Advantages of binary search on linear search in c?

(i) Binary search can interact poorly with the memory hierarchy (i.e. caching), because of its random-access nature. For in-memory searching, if the interval to be searching is small, a linear search may have superior performance simply because it exhibits better locality of reference. (ii) Binary search algorithm employs recursive approach and this approach requires more stack space. (iii) Programming binary search algorithm is very difficult and error prone (Kruse, 1999).


What is the binary search tree worst case time complexity?

Binary search is a log n type of search, because the number of operations required to find an element is proportional to the log base 2 of the number of elements. This is because binary search is a successive halving operation, where each step cuts the number of choices in half. This is a log base 2 sequence.


What are the advantages and disadvantages of binary search algorithms?

the major limitation of binary search is that there is a need of sorted array to perform binary search operation. if array is not sorted the output is either not correct or may be after a long number of steps and according to data structure the output should come in minimum number of steps.

Related Questions

What is the time complexity of searching a binary search tree?

The time complexity of searching a binary search tree is O(log n), where n is the number of nodes in the tree.


What is the running time of binary search algorithm?

The running time of the binary search algorithm is O(log n), where n is the number of elements in the sorted array being searched.


What is the time complexity of a binary search algorithm?

The time complexity of a binary search algorithm is O(log n), where n is the number of elements in the sorted array being searched.


What is the time complexity for finding an element in a binary search tree?

The time complexity for finding an element in a binary search tree is O(log n), where n is the number of nodes in the tree.


What is the time complexity of an algorithm that uses a binary search to find an element in a sorted array in logn time?

The time complexity of an algorithm that uses binary search to find an element in a sorted array in logn time is O(log n).


What is the time complexity of a binary search algorithm in computer science?

The time complexity of a binary search algorithm in computer science is O(log n), where n is the number of elements in the sorted array being searched.


When was Google Real-Time Search created?

Google Real-Time Search was created in 2009.


What is the time complexity of an algorithm that utilizes a binary search algorithm to search through a sorted array, where the search time is represented by the function log(n) in terms of the input size n?

The time complexity of an algorithm that uses a binary search on a sorted array is O(log n), where n is the size of the input array.


What is the time complexity of operations on a balanced binary search tree?

The time complexity of operations on a balanced binary search tree, such as insertion, deletion, and search, is O(log n), where n is the number of nodes in the tree. This means that these operations can be performed efficiently and quickly, even as the size of the tree grows.


What are the various applications of linear search in real time?

Linear search is necessary when we must search unordered sets. Linear search times across huge sets can be improved significantly by dividing the set amongst two or more threads that can execute on independent CPU cores.


What is the worst case and best case for binary search?

The best case for a binary search is finding the target item on the first look into the data structure, so O(1). The worst case for a binary search is searching for an item which is not in the data. In this case, each time the algorithm did not find the target, it would eliminate half the list to search through, so O(log n).


Where are trees in data structures implemented in the real world?

First off, there are several types of trees in data structures. each with different uses and benefits. The two most common are binary trees and binomial trees. Binary trees are used most commonly in search algorithms. The benefits of this is that a search can be performed in O(lg(n)) time, instead of the O(n) time that a sequential search takes. An example from the real world of a binary tree in action is in databases, where indexes are organized in a binary tree, thus enabling faster searching. Binomial trees are usually used in communication, particularly when distributing or aggregating information. A real world example comes from supercomputers, where multiple processors are all working simultaneously. In order to aggregate or distribute data, a binomial tree structure is commonly employed.