Skip to content

Instantly share code, notes, and snippets.

View cbdavide's full-sized avatar

David Castelblanco cbdavide

View GitHub Profile
@cbdavide
cbdavide / First script
Created April 13, 2016 23:47
Prints even numbers, and odd numbers
#!/bin/bash
re='^-?[0-9]+([.][0-9]+)?$'
if ! [[ $2 =~ $re ]] ; then
echo "El parámetro inicial NO es un número."
exit
fi
if ! [[ $3 =~ $re ]] ; then
echo "El parámetro final NO es un número."
exit
@cbdavide
cbdavide / BinarySearch.js
Last active April 30, 2022 02:18
Binary search algorithm in javascript
var binarySearch = function(array, value) {
var guess,
min = 0,
max = array.length - 1;
while(min <= max){
guess = Math.floor((min + max) /2);
if(array[guess] === value)
return guess;
else if(array[guess] < value)
@cbdavide
cbdavide / SelectionSort.js
Created May 12, 2016 02:29
Selection sort algorithm in javascript
var selectionSort = function(array) {
var temp;
for(var i=0; i<array.length; i++){
var mi = i;
for(var j = i + 1; j<array.length; j++) {
if(array[j] < array[mi])
mi = j;
}
@cbdavide
cbdavide / MergeSort.js
Last active May 17, 2016 16:03
Merge sort algorithm in javascript
var merge_sort = function(array, b, e){
if(b < e) {
var m = Math.floor((b + e) / 2);
//Recursive stuff
merge_sort(array, b, m);
merge_sort(array, m+1, e);
//Merge stuff
var lower = [],
higher = [];
@cbdavide
cbdavide / heapsort.py
Created December 30, 2016 20:02
Heap sort algorithm, using the binary heap, and bitmask operators
class Heap:
def __init__(self, arr):
self.cont = arr
self.size = len(self.cont) - 1
self.buildheap()
def left(self, i):
return (i << 1) + 1
def right(self, i):
# Tree representation
class Node:
def __init__(self, val):
self.data = val
self.right = None
self.left = None
def recursive_inorder(node):
if not node:
return
@cbdavide
cbdavide / Longest Increasing Subsequence.cpp
Last active July 27, 2017 23:54
Longest Increasing Subsequence
typedef vector<int> vi;
/**
* LONGEST INCREASING SUBSEQUENCE
* COMPLEXITY O(N^2)
*/
int lci(vi &A) {
vi DP (A.size(), 1);
for(int i=1; i<(int)A.size(); i++) {
for(int j=0; j<i; j++) {
@cbdavide
cbdavide / primality-test.cpp
Created August 8, 2017 02:50
Tests de primalidad
#include <cstdio>
using namespace std;
typedef long long ll;
/**
* O(n)
*/
bool esPrimoLineal(ll n, ll &contador) {
contador = 0LL;
@cbdavide
cbdavide / render
Created October 21, 2017 03:34
Renderer
from jinja2 import Template
with open('template.tpl') as file:
text = file.read()
template = Template(text)
new = template.render(slide={'num': 1, 'name': 'a'})
with open('out', 'w') as output:
@cbdavide
cbdavide / code.py
Created October 31, 2017 11:52
Maximum subarray product.py
''''Maximum Subarray Problem - Extended Kadane
Source: https://www.quora.com/How-do-I-solve-maximum-product-subarray-problems
'''
def max_product(A):
maxG, maxC, minC = A[0], A[0], A[0]
for num in A:
temp = maxC
maxC = max([num, temp * num, minC * num])