Skip to content

Instantly share code, notes, and snippets.

@guiathayde
Last active July 4, 2025 21:53
Show Gist options
  • Save guiathayde/a76cf12e7586981ccd8502c1356273cd to your computer and use it in GitHub Desktop.
Save guiathayde/a76cf12e7586981ccd8502c1356273cd to your computer and use it in GitHub Desktop.
Médias de tempo de execução das estratégias e Dispersão dos tempos de execução (Boxplot)
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Dados simulados baseados no artigo: "An Experimental Analysis on Different Pivot Selection Approaches for the Quicksort Algorithm"
data = {
'Estratégia': ['MOT', 'MO5', 'MO7'],
'Média de Tempo (s)': [0.0124, 0.0139, 0.0112],
'Desvio Padrão': [0.001, 0.002, 0.0008]
}
df = pd.DataFrame(data)
# Gráfico de Barras - Médias
plt.figure(figsize=(8, 5))
sns.barplot(x='Estratégia', y='Média de Tempo (s)', data=df, palette='Blues_d')
plt.title('Tempo Médio de Execução por Estratégia de Pivô (Quicksort)')
plt.ylabel('Tempo Médio (s)')
plt.xlabel('Estratégia de Pivô')
plt.tight_layout()
plt.savefig('/mnt/data/grafico_barras_quicksort.png')
plt.close()
# Boxplot simulado - Dispersão dos tempos (dados sintéticos)
box_data = pd.DataFrame({
'Tempo (s)': (
[0.0115, 0.0123, 0.0124, 0.0125, 0.0122] + # MOT
[0.0137, 0.0139, 0.0141, 0.0140, 0.0138] + # MO5
[0.0110, 0.0111, 0.0112, 0.0113, 0.0111] # MO7
),
'Estratégia': ['MOT']*5 + ['MO5']*5 + ['MO7']*5
})
plt.figure(figsize=(8, 5))
sns.boxplot(x='Estratégia', y='Tempo (s)', data=box_data, palette='Pastel1')
plt.title('Dispersão dos Tempos de Execução por Estratégia')
plt.ylabel('Tempo de Execução (s)')
plt.xlabel('Estratégia de Pivô')
plt.tight_layout()
plt.savefig('/mnt/data/boxplot_quicksort.png')
plt.close()
# Exemplo do Teste t de Student com base nos dados do artigo
# Comparando tempos de execução entre MO7 e MOT
import scipy.stats as stats
# Dados simulados de tempo para MO7 e MOT (em segundos)
mo7 = [0.0110, 0.0111, 0.0112, 0.0113, 0.0111]
mot = [0.0123, 0.0124, 0.0125, 0.0122, 0.0115]
# Teste t para duas amostras independentes (assumindo variâncias iguais)
t_stat, p_value = stats.ttest_ind(mo7, mot, equal_var=True)
print(f"Estatística t: {t_stat:.4f}")
print(f"Valor-p: {p_value:.4f}")
if p_value < 0.05:
print("Resultado: Diferença estatisticamente significativa entre MO7 e MOT.")
else:
print("Resultado: Não há diferença estatisticamente significativa.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment