Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
Quality is remembered long after the price is forgotten (Sir Frederick Royce)

Maksim Sokolnikov Bablzz

💭
Quality is remembered long after the price is forgotten (Sir Frederick Royce)
View GitHub Profile
@Bablzz
Bablzz / bs.rb
Last active Oct 27, 2020
binary search
View bs.rb
# Best O(1)
# Worst O(long n)
arr = [1,2,3,4,5,6,7,10]
def bs (list, elem)
low = 0
high = list.length
@Bablzz
Bablzz / Queue_bfs.rb
Last active Oct 13, 2020
breadth-first search, BFS
View Queue_bfs.rb
# O(|V|+|E|)
graph = Hash.new
graph["you"] = ["alice", "bob", "claire"]
graph["bob"] = ["anuj", "peggy"]
graph["alice"] = ["peggy"]
graph["claire"] = ["thom", "jonny"]
graph["anuj"] = []
graph["peggy"] = []
graph["thom"] = []
View bubble_sort.go
package main
// worst n^2
// best n
import (
"fmt"
)
func main() {
arr := []int{2,5,4,-8,9,1}
@Bablzz
Bablzz / example.md
Last active Mar 26, 2020
Some reason do not build docker by Packer
View example.md
  1. Packer change entrypoint. This is obscure if you are just trying packer. You can read this here

  2. Packer doesn't work with scratch/distroless images(and another without bash) If your docker image has no bash packer does not build your image. See here

  3. Packer has no some docker command like copy. See here

@Bablzz
Bablzz / fib_memo.rb
Last active Dec 13, 2019
Fibonacci with memoization
View fib_memo.rb
memo = Hash.new(0)
def fib_rec (number, memo)
if number == 0
return number
elsif (number == 1) || (number == 2)
return 1
end
if (memo.has_key?(number))
return memo[number]
View insertion_sort.rb
# O(n^2)
def insertion_sort arr
i = 0
j = 0
for i in 1...(arr.length) do
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j] do
arr[j + 1] = arr[j]
@Bablzz
Bablzz / tower.py
Created Nov 20, 2019
Tower of Hanoi
View tower.py
def solve(n, a, b, c):
if n > 0:
solve(n - 1, a, c, b)
print('Move disk from ' + a + ' to disk ' + b)
solve(n - 1, c, b, a)
solve(3, '1', '2', '3')
@Bablzz
Bablzz / sieve.py
Last active Oct 30, 2019
Sieve of Eratosthenes
View sieve.py
# O(n log(log n))
arr = list(range(0, 300))
def sieve(ar):
for i in ar:
if i > 1:
step = arr[i]
while (arr[i] + step) < len(arr):
@Bablzz
Bablzz / simple.py
Last active Oct 23, 2019
Check if digit is simple
View simple.py
def is_simple(digit):
for i in range(2, digit - 1):
if ((digit % i) == 0):
return False
else:
return True
print(is_simple(72)) # False
print(is_simple(73)) # True
@Bablzz
Bablzz / countsort.rb
Last active Oct 21, 2019
Counting sort
View countsort.rb
=begin
O(n + k)
=end
def countSort arr
countArr = []
resultArr = Array.new(arr.length)
max = arr.max