Skip to content

Instantly share code, notes, and snippets.

View tysm's full-sized avatar

Thalles Medrado tysm

View GitHub Profile
@tysm
tysm / README.md
Created December 29, 2019 23:01
A single template to all my projects README.md

Project Title

Badges goes here (optional).

Project Logo (optional)

Short and straightforward project description.

Table of Contents (optional)

@tysm
tysm / pyth
Created October 16, 2019 03:20
A simple project path to PYTHONPATH exporter.
#!/bin/bash
SCRIPT_PATH="${BASH_SOURCE[0]#./}"
if [[ ! ${0#./} != $SCRIPT_PATH ]]; then
echo "You cannot run it directly. This file must be sourced *from bash*: source $SCRIPT_PATH PYTHON"
exit 1
fi
PROJECT_PATH="$(cd "$(dirname "$SCRIPT_PATH")"/.. && pwd)"
@tysm
tysm / venv
Last active October 16, 2019 03:17
Python Virtual Enviroment setup and sourcer using python-pip and python-venv
#!/bin/bash
SCRIPT_PATH="${BASH_SOURCE[0]#./}"
if [[ ! ${0#./} != $SCRIPT_PATH ]]; then
echo "You cannot run it directly. This file must be sourced *from bash*: source $SCRIPT_PATH PYTHON"
exit 1
fi
if [[ $# -ne 1 ]]; then
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.potelo.prelude.searcher;
import com.potelo.prelude.hitfield.HighlightRange;
import com.yahoo.component.chain.dependencies.After;
import com.yahoo.component.chain.dependencies.Before;
import com.yahoo.component.chain.dependencies.Provides;
import com.yahoo.prelude.Index;
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
<services version="1.0">
<container id="default" version="1.0">
<document-processing/>
<document-api/>
<search>
<chain id="default" inherits="vespa">
<searcher id="com.potelo.prelude.searcher.JuniperMapSearcher" bundle="basic-search-java"/>
{
"clients": [
{
"id": "internalNoThrottledSource@MbusClient",
"class": "com.yahoo.messagebus.jdisc.MbusClient",
"bundle": "container-disc:7.0.0",
"serverBindings": [],
"clientBindings": [
"mbus://*/internalNoThrottledSource"
]
# conding: utf-8
"""
Código de minimização de autômatos finitos determinísticos incompletos ou completos
Autor: Thalles Medrado
21/01/2018
"""
def ipt():
return int(input())

Ordenação

  • Em ciência da computação o algoritmo de ordenação é responsável por colocar certos elementos numa determinada ordem.
  • A ordenação é considerado o problema mais fundamental do estudo de algoritmos.

Bubble Sort

  • Mais simples dos algortmos de ordenação.
  • Percorre o vetor, a ser ordenado, várias vezes e a cada passagem faz "flutuar para o topo" o maior elemento da sequência.
  • Na maioria dos casos são feitas n² operações (comparações e trocas), ou seja, o algoritmo possui complexidade O(n²) (n representa a quantidade de elementos num vetor).
  • Existe uma implementação na qual o melhor caso tem complexidade O(n).

Código

Árvore Vermelho Preto / Rubro Negra / Red Black

  • Tipo de árvore balanceada.
  • Operações básicas em O(log n) no pior caso, onde n = quantidade de nós.
  • Inventadas por Bayer com nome de "Árvores Binárias Simétricas" em 1972, 10 anos depois da árvore AVL.

Estrutura

  • Cada nó possui:
Uma cor, vermelho ou preto, ou é nó NIL (fictício/NULO ou sentinela).
Ponteiros para a subárvore esquerda e direita e para o nó que contém este nó.

Árvore AVL

  • Tipo de árvore balanceada pela altura.
  • O nome AVL vem das iniciais de seus criadores: Adelson Velsky e Landis.

Balanceamento

  • Está balanceada quando, para cada nó da árvore, a diferença entre as alturas das subárvores (direita e esquerda) não é maior que 1.

Fator de Balanceamento

  • É dado por: altura da subárvore esquerda - altura da subárvore direita.
  • Corolário: nós balanceados possuem fator de balanceamento = 1, 0 ou -1.
  • Corolário: um nó com fator de balanceamento = 2 ou -2 requer um balanceamento.
  • Corolário: Fator de balanceamento = 1 indica que a subárvore da esquerda é maior que a da direita.