Explore an improved version of linear search.
I'm a Ph.D. student in AI at the University of Belgrade. My fields of interest are machine learning, search, statistics, and data analysis. I have a strong background in programming and algorithms in general, always looking for new challenges.
Here's what I've written (so far):
Baeldung on Computer Science
- Math and Logic (12)
- Algorithms (11)
- Machine Learning (10)
- Sorting (9)
- Programming (8)
- Graph Traversal (8)
- Trees (7)
- Searching (5)
- Data Structures (4)
- Path Finding (3)
- Deep Learning (3)
- Artificial Intelligence (3)
- Latex (2)
- Graphs (2)
- Data Science (2)
- Security (1)
- Graph Theory (1)
Explore two ways to calculate the digital root of an integer.
Learn more about the random variables.
Explore bolding math symbols in Latex.
Explore the difference between the parameters and hyperparameters in machine learning.
Learn how to find neighbors of a cell in a 2D matrix.
Learn how to reference subordinate equations in LaTeX and customize their labels.
Discuss declarations, definitions, and initialization in programming.
Learn how to project a point onto a plane and find its coordinates in the plane’s coordinate system.
Explore Shellsort’s complexity.
Explore recursive and iterative algorithms for checking if a string is a palindrome.
Explore a linear-time algorithm for converting a postfix expression into an expression tree.
Learn about the Jump Search algorithm.
Learn about Exponential Search.
Learn about sampling from an exponential distribution.
Learn more about the F-Beta score in machine learning.
Learn about hypotheses spaces in machine learning.
Explore four ways of converting a float into a fraction: two exact techniques and two approximate.
Explore two efficient ways of finding common elements of two sorted arrays.
Explore the differences between precision and average precision.
Learn how to compute the percentage improvement when the performance metric is time.
Explore the construction complexities of Binary Search Trees (BSTs) and AVL trees.
Explore the difference between the pre-increment and post-increment operators inside a loop’s termination condition.
Learn how to find the closest two numbers in an array.
Learn how to find the k-th smallest element in a binary search tree.
Learn how to find the closest two points in a two-dimensional space endowed with the Manhattan distance.
Explore the difference between decision trees and random forests.
Learn about the differences between artificial intelligence, machine learning, statistics, and data mining.
Explore the meanings of the loss, cost, and objective functions.
Learn about the gradient-boosting trees and compared them to random forests.
Discuss the role of kernels in machine learning intuitively.
Learn how to calculate the information gain in Data Science and Machine Learning.
Learn about cross-validating decision trees.
Learn about pseudo-polynomial algorithms.
Learn about the stability of Selection Sort.
Learn how to calculate the number of comparisons in Straight Selection Sort.
Learn how to use K-means for classification.
Learn about linear separability in Machine Learning.
Explore a methodology for estimating how the depth and number of trees affect the performance of a random forest.
Learn about the Radix Sort algorithm.
Explore the Monty Hall Problem.
Explore three algorithms designed to check string periodicity.
Learn about Binary Insertion Sort algorithm and its complexity.
Explore tabulation and memoization.
Learn about tree edit distance and how to calculate it.
Learn about context-free languages and some techniques for proving that a language is (not) context-free.
Explore three types of balanced trees: the AVL trees, red-black trees, and weight-balanced trees.
Compare the efficiency of four standard sorting algorithms: Bubble Sort, Insertion Sort, Quicksort, and Merge Sort.
Explore skip lists and operations of insertion, search, and deletion using the skip list data structure.
Learn about induced and ordinary subgraphs.
Learn about the differences between the unweighted and weighted graphs.
Explore three ways to determine a node’s rank in a binary search tree.
Explore three ways to find the in-order successor of a node.
Explore two algorithms for building a forest of trees from a flat list.
Learn about converting recursion into iteration.
Explore two algorithms for finding the median of a big data stream.
Explore the difference between the tail and non-tail recursion.
Explore the Akra-Bazzi method used to determine the complexity divide-and-conquer algorithms.
Explore two ways to generate all the permutations with repetition of the set.
Learn about two algorithms: Bidirectional Search (BiS) and Bidirectional UCS (BiUCS).
Learn about a general backtracking algorithm for solving constraint satisfaction problems.
Explore the Expectimax algorithm for stochastic games.
Explore differences between Dijkstra’s and A* algorithms.
Compare Depth-First Search (DFS) to Breadth-First Search (BFS).
Compare the Graph-Search and Tree-Like Search strategies.
Explore Uniform-Cost Search (UCS) and Best-First Search (BeFS).
A comparison between informed and uninformed search strategies.
Learn how to find all the tic-tac-toe grids that represent a win.
Explore several ways to trace the paths in Depth-First Search, Breadth-First Search, and Dijkstra’s Algorithm.
Learn about the differences between Depth-First Search and Iterative Deepening.
Analyze the worst, best, and average-case time complexity of QuickSelect.
Learn about the Candidate Elimination Algorithm (CEA), which is a supervised technique for learning concepts from data
Learn about the extended Euclidean algorithm (EEA).
In this tutorial, we’ll show several ways to find the $k$ smallest numbers in an array. We’ll also discuss those methods’ complexity and relative performance to one another.