Skip to content

Instantly share code, notes, and snippets.

View KerryJones's full-sized avatar

Kerry Jones KerryJones

View GitHub Profile
from typing import List
def quick_select(array: List, start: int, end: int, kth: int):
if start > end:
return
pivot = partition(array, start, end)
if pivot == kth - 1:
from typing import List
def quick_sort(array: List, start: int, end: int) -> None:
if start >= end:
return
pivot = partition(array, start, end)
quick_sort(array, start, pivot - 1)
quick_sort(array, pivot + 1, end)
@KerryJones
KerryJones / disjoint-set.py
Last active December 19, 2018 16:52
Python 3 - Disjoint Set
class DisjointSet:
sets = {}
rank = {}
def __init__(self, arr):
for v in arr:
self.sets[v] = v
self.rank[v] = 0
def merge(self, v1, v2):
@KerryJones
KerryJones / MySQLUpsert.php
Created January 7, 2017 02:14
Laravel 5.3 MySQL Upsert Trait
<?php
namespace App\Traits;
use Illuminate\Support\Facades\DB;
trait MySQLUpsert
{
/**
* Single call to insert/update based on any duplicate key (primary, unique, etc.)
@KerryJones
KerryJones / tower-of-hanoi.py
Created March 2, 2016 18:42
Tower of Hanoi
class tower_of_hanoi:
tower1 = None
tower2 = None
tower3 = None
def __init__(self, n):
self.tower1 = Stack
self.tower2 = Stack
self.tower3 = Stack
@KerryJones
KerryJones / bfs.py
Last active July 28, 2020 05:32
Python Breadth-First-Search
class Node:
visited = None
data = None
adjacent = None
def __init__(self, value):
self.data = value
self.adjacent = []
self.visited = False
@KerryJones
KerryJones / dfs.py
Created January 14, 2016 20:18
Python Depth-First-Search
class Node:
visited = None
data = None
adjacent = None
def __init__(self, value):
self.data = value
self.adjacent = []
self.visited = False
@KerryJones
KerryJones / .gitconfig
Created January 7, 2016 21:31
Semantic Versioning for Git Scripts
[alias]
merge-release-major = !sh ../gitscripts/merge-release-major.sh
merge-release-minor = !sh ../gitscripts/merge-release-minor.sh
merge-release-patch = !sh ../gitscripts/merge-release-patch.sh
@KerryJones
KerryJones / merge-sort.py
Last active July 28, 2020 04:56
Python Merge Sort
def merge_sort(array: List) -> List:
if len(array) < 2:
return array
middle = floor(len(array)/2)
left = merge_sort(array[:middle])
right = merge_sort(array[middle:])
sorted_array = []
@KerryJones
KerryJones / bubble-sort.py
Created January 1, 2016 20:33
Python Bubble Sort
def bubble_sort(array):
for i in range(0, len(array)):
swapped = False
for j in range(0, len(array) - i - 1):
if array[j] > array[j + 1]:
array[j], array[j + 1] = array[j + 1], array[j]
swapped = True
if not swapped: