background preloader

Data Structure Visualization

Data Structure Visualization

Related:  computer scienceAlgorithms and Design PatternsalgorithmLive modelsAlgorithmes

Why is quicksort better than other sorting algorithms in practice? - Computer Science Stack Exchange Under what conditions is a specific sorting algorithm actually the fastest one? 1) When implemented in a parallel way in hardware, does it need to have a reasonably low latency while requiring as few gates as possible? Yes -> use a bitonic sorter or Batcher odd-even mergesort, latency is and the number of comparators and multiplexers is . 2) How many different values can each element have? Cans every possible value have assigned a unique place in memory or cache Yes -> use count sort or radix sort, those usually have a linear runtime of (count sort) or (bucket sort) but slow down for a large number of different values, as and . 3) Does the underlying data structure consist of linked elements?

Formal Verification Creates Hacker-Proof Code In the summer of 2015 a team of hackers attempted to take control of an unmanned military helicopter known as Little Bird. The helicopter, which is similar to the piloted version long-favored for U.S. special operations missions, was stationed at a Boeing facility in Arizona. The hackers had a head start: At the time they began the operation, they already had access to one part of the drone’s computer system. From there, all they needed to do was hack into Little Bird’s onboard flight-control computer, and the drone was theirs.

Sorting Algorithms Demo We all know that Quicksort is one of the fastest algorithms for sorting. It's not often, however, that we get a chance to see exactly how fast Quicksort really is. The following applets chart the progress of several common sorting algorithms while sorting an array of data using in-place algorithms. This means that the algorithms do not allocate additional storage to hold temporary results: they sort the data in place. (This is inspired by the algorithm animation work at Brown University and the video Sorting out Sorting By Ronald Baecker from the University of Toronto (circa 1970!).) Some of these sorts are very stupid or very slow and should not be used in code. Now let's describe the code to run the simulation and summarize/plot the results. The function simulate does the work; it runs the interaction function to find two actors, then calls the transaction function to figure out how to split their wealth, and repeats this T times. The only other thing it does is record results. Every so-many steps, it records some summary statistics of the population (by default, this will be every 25 steps). What information do we record to summarize the population? Out of the N=5000 (by default) actors, we will record the wealth of exactly nine of them: the ones, in sorted-by-wealth order that occupy the 1% spot (that is, if N=5000, this would be the 50th wealthiest actor), then the 10%, 25% 1/3, and median; and then likewise from the bottom the 1%, 10%, 25% and 1/3.

CompSci 101 - Big-O notation I recently had a couple of Google interviews in Tokyo, and while preparing for them I ended up with a huge list of things I wanted to brush up on before the interview. It turns out I didn’t get the job (next time!), but I thought I might be able to learn something anyway by working through the list and blogging about the main areas that companies like Google expect you to know. I’ve grabbed the domain (which currently redirects back here), and when I’ve collected enough posts I plan to throw everything up there as a kind of chapter-by-chapter interview-primer in the hope that it might help someone else out. Without further ado, first on the list is Big-O notation:

Algorithms and Data Structures Stack is one of the fundamental data structures in computer science and it is used in many algorithms and applications. As an example, stack is used: implicitly in recursion; for expression evaluation; to check the correctness of parentheses sequence; etc. First of all, we will describe Stack ADT and then show two different implementations. What Is Clean Code? - DZone Agile Recently, I helped facilitate some discussion workshops on the topic of clean code. Each of the discussions seemed to be predicated on a belief that readability is the most important criterion by which to assess whether code is clean. Indeed, the groups spent a lot of time discussing ways to establish and police coding standards and the like. While I agree that this can be useful, I felt that the discussions missed the aspects of clean code that I consider to be the most important.

Scrubbing Calculator Bret Victor / May 31, 2011 This page presents an idea for exploring practical algebraic problems without using symbolic variables. I call this tool a "scrubbing calculator", because you solve problems by interactively scrubbing over numbers until you're happy with the results.

Maze Generation: Growing Tree algorithm # An implementation of the "Growing Tree" algorithm. This one is # notable for it's ability to become nearly identical to Prim's

Related:  AlgorithmsComputer Science