127 private links
[Simon Tatham, 2023-12-06]
Many years ago, my employer used to use “Can you name any sorting algorithms?” as a quickie interview question.
I’m something of a sorting-algorithms nerd, which is a quality that often comes with strong opinions. My personal prejudice (although I did my best not to let it affect the outcome of the interview) was that I was always extra pleased if our candidate listed a handful of well-known algorithm names and didn’t mention bubblesort.
Why? Because I hate it. Bubblesort is an awful sorting algorithm, and I wish people would stop teaching it.
Crack LeetCode, not only how, but also why.
Do you actually use algorithms and data structures on your day to day job? I've noticed a growing trend of people assuming algorithms are pointless questions that are asked by tech companies purely as an arbitrary measure. I hear more people complain about how all of this is a purely academic exercise. This notion was definitely popularized after Max Howell, the author of Homebrew, posted his Google interview experience:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
Google Research. Contribute to google-research/google-research development by creating an account on GitHub.
Learn how to use the Logistic Regression model to classify unseen data.
Semi-supervised clustering
- Seeded-KMeans
- Constrainted-KMeans
- COP-KMeans
- Pairwise constrained K-Means (PCK-Means)
- Metric K-Means (MK-Means)
- Metric pairwise constrained K-Means (MPCK-Means)
Active learning of pairwise clustering
- Explore & Consolidate
- Min-max
- Normalized point-based uncertainty (NPU) method
Python codes implementing algorithms described in Bishop's book "Pattern Recognition and Machine Learning"
A* algorithm visualizer written in pygame.
Analyses of single-cell recordings from mouse ventral tegmental area are consistent with a model of reinforcement learning in which the brain represents possible future rewards not as a single mean of stochastic outcomes, as in the canonical model, but instead as a probability distribution.
CleverCSV provides a drop-in replacement for the Python csv package with improved dialect detection for messy CSV files. It also provides a handy command line tool that can standardize a messy file or generate Python code to import it.
Graphical A* simulation.
Collections: double linked list, deque, RBtree, channels.
The idea of RosettaGit is to present solutions to the same task in as many different programming languages as possible. It demonstrates how languages are similar and different and can help you learn new approaches to solving problems.
Normally, the arrangement of mines is decided at the start of the game (except for some trickery so that you cannot lose on the first click). But what if there was no pre-determined arrangement, and the game was allowed to choose after you play?
An interesting article describing the logic of this original minesweeper game.
TextDistance, a python library for comparing distance between two or more sequences by many algorithms.
Features:
- 30+ algorithms
- Pure python implementation
- Simple usage
- More than two sequences comparing
- Some algorithms have more than one implementation in one class.
- Optional
numpy
usage for maximum speed.
Python3 implementation of the Schwartz-Hearst algorithm for extracting abbreviation-definition pairs.