hakk

software development, devops, and other drivel
Tree lined path

Algorithms

Merge Sort

Merge Sort is another efficient sorting algorithm that follows the divide-and-conquer strategy. It divides the input array into two halves, recursively sorts each half, and then merges them back together. Here’s how Merge Sort works: Divide: Divide the unsorted array into two halves. Conquer: Recursively sort each half. Merge: Merge the two sorted halves into a single sorted array. Base Case: The base case of the recursion is when the sub-array has zero or one element, in which case it is already considered sorted. Read more...

Quick Sort

Quick Sort is a widely-used sorting algorithm known for its efficiency and simplicity. It follows the divide-and-conquer strategy to sort an array or list of elements. Here’s how Quick Sort works: Partitioning: Choose a pivot element from the array. Rearrange the array so that all elements less than the pivot come before it, and all elements greater than the pivot come after it. After this partitioning step, the pivot element is in its final sorted position. Read more...

Binary Search

Binary Search is a searching algorithm for finding an element’s position, if it exists, in a sorted array. Implementation Python Go JavaScript C++ Java def search(nums, k): right = len(nums) left = 0 while left <= right: mid = (left + right) // 2 if nums[mid] == k: return mid elif nums[mid] > k: right = mid - 1 else: left = mid + 1 return -1 func search(nums []int, key int) int { left := 0; right := len(nums) var mid int for left <= right { mid = left + (right - left) / 2 if nums[mid] == key { return mid } if nums[mid] < key { left = mid + 1 } else { right = mid - 1 } } return -1 } function search(array, key) { let left = 0; let right = array. Read more...

Best Way to Check if a Number Contains Another Number

Need to find out if a number contains another number? And you want better performance than converting to a string and then looping through that to find the key number? Well you’ve come to the right place! Using a combination of the modulo operator and division it’s possible to pull the number apart one digit at a time until it reaches 0. Implementation Using a Loop Python Go JavaScript C++ Java def checkNumberIfContainsKey(number, key): while number > 0: if number % 10 == key: return True number = number // 10 return False package main import "fmt" func checkNumberIfContainsKey(number, key int) bool { for number > 0 { if number%10 == key { return true } number = number / 10 } return false } func main() { fmt. Read more...

Two Sum

Given an array of unsorted numbers nums and an integer target, find two integers in the array that sum to the target and return their indices. There are three ways that I know of to solve this problem. Below you’ll find a description of each with some brief code examples. I would like to encourage you to try to implement your own solution first before scrolling down. Solution 1: Brute Force The first way, which is the brute force method, is to use nested loops. Read more...