Você está aqui: Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a ordenação Selection Sort em Python - Ordenação por Seleção em PythonQuantidade de visualizações: 566 vezes |
Nesta dica mostrarei os detalhes da ordenação Selection Sort e como implementá-la em Python. Também chamada de Ordenação por Seleção, esta ordenação classifica o array (ou vetor) de forma repetitiva procurando sempre o menor elemento na parte não ordenada do vetor e movendo-o para a parte já ordenada. Mencionei menor elemento para o caso da classificação em ordem crescente. Se for ordem decrescente então deveremos buscar sempre o maior elemento. Considerando o vetor [1, 6, 9, 3, 7, 8, 5, 2] nós teremos as iterações do laço externo e do laço interno, resultando nas seguintes trocas de elementos: Troca 1: 2 trocou de lugar com 6 Resultado: [1, 2, 9, 3, 7, 8, 5, 6] Troca 2: 3 trocou de lugar com 9 Resultado: [1, 2, 3, 9, 7, 8, 5, 6] Troca 3: 5 trocou de lugar com 9 Resultado: [1, 2, 3, 5, 7, 8, 9, 6] Troca 4: 6 trocou de lugar com 7 Resultado: [1, 2, 3, 5, 6, 8, 9, 7] Troca 5: 7 trocou de lugar com 8 Resultado: [1, 2, 3, 5, 6, 7, 9, 8] Troca 6: 8 trocou de lugar com 9 Resultado: [1, 2, 3, 5, 6, 7, 8, 9] Veja agora o código Python completo para a ordenação Selection Sort. Coloquei comentários detalhados para facilitar o seu entendimento do algorítmo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): # vamos criar um vetor de inteiros valores = [1, 6, 9, 3, 7, 8, 5, 2] # vamos mostrar o vetor na ordem original print("Vetor na ordem original: {0}".format(valores)) # agora vamos usar a ordenação Selection Sort # para ordenar o vetor em ordem crescente ordenar_selection_sort(valores) # e agora vamos mostrar o vetor ordenado print("Vetor ordenado: {0}".format(valores)) # função que usa a ordenação Selection Sort para # ordenar um array de inteiros def ordenar_selection_sort(vetor): # vamos obter o tamanho do vetor n = len(vetor) # o laço externo percorre os elementos do vetor a partir # do primeiro elemento e vai até o penúltimo elemento for i in range(0, n - 1): # encontramos o menor elemento do sub-vetor que ainda # não foi ordenado indice_menor_elemento = i # o laço interno começa no índice (i + 1) e vai # até a quantidade de elementos no vetor - 1 for j in range(i + 1, n): # o elemento atual (j) é menor que o elemento no # índice do menor elemento? if vetor[j] < vetor[indice_menor_elemento]: # atualizamos o índice do menor elemento indice_menor_elemento = j # troca o menor elemento com o elemento no índice # i, no sub-vetor já ordenado if vetor[indice_menor_elemento] != vetor[i]: temp = vetor[indice_menor_elemento] vetor[indice_menor_elemento] = vetor[i] vetor[i] = temp if __name__== "__main__": main() Por apresentar laços aninhados (um laço externo e um interno), a ordenação Selection Sort não é recomendada para grandes conjuntos de dados, visto que sua complexidade de tempo é de O(n2). |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Passos Iniciais |
Machine Learning para iniciantes - Como usar a biblioteca NumPy em seus programas PythonQuantidade de visualizações: 2118 vezes |
Criada em 2005 por Travis Oliphant, a biblioteca NumPy é uma biblioteca Python que, embora escrita parcialmente em código Python, possui trechos de código C ou C++, principalmente as partes que requerem processamento ou computação mais veloz. Estudiosos, entusiastas e desenvolvedores de soluções envolvendo Data Science, Deep Learning, Machine Learning e Inteligência Artificial (IA) em geral, encontram nessa biblioteca muitas funções úteis para a criação e manipulação de vetores e matrizes, além de funções para trabalhar no domínio de algebra linear e transformação fourier. A biblioteca NumPy (Numerical Python) é um projeto open source e pode ser usada livremente em qualquer programa Python. Uma das razões para a sua adoção é a substituição das listas Python pelos vetores e matrizes NumPy, já que estes últimos são 50 vezes mais rápidas que as listas Python, que muitas vezes fazem o papel de arrays. Minha instalação do Python já possui a biblioteca NumPy? A melhor forma de descobrir se a NumPy já está disponível para os seus códigos Python é rodando o seguinte trecho de código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # construimos um vetor de cinco elementos vetor = np.array([20, 3, 87, 4, 120]) # imprimimos seu conteúdo print(vetor) if __name__== "__main__": main() Se você vir o resultado abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- [ 20 3 87 4 120] então sua instalação do Python já contém a biblioteca NumPy e você está pronto(a) para experimentar as demais dicas e truques dessa seção. Porém, se você ainda não tiver a NumPy, a seguinte mensagem de erro será exibida: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Exception has occurred: ModuleNotFoundError No module named 'numpy' File "C:\estudos_python\estudos.py", line 2, in <module> import numpy as np Não se desespere. Basta abrir uma janela de prompt e disparar o comando abaixo: pip install numpy Aguarde alguns minutos para que o Pip baixe e instale a biblioteca. Em seguida tente executar o código acima novamente. Agora é só aproveitar tudo que a biblioteca NumPy tem a nos oferecer. |
Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em Python dados dois pontos pertencentes à retaQuantidade de visualizações: 2832 vezes |
Nesta dica de Python veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Python completo para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): # vamos ler as coordenadas do primeiro ponto x1 = float(input("Coordenada x do primeiro ponto: ")) y1 = float(input("Coordenada y do primeiro ponto: ")) # vamos ler as coordenadas do segundo ponto x2 = float(input("Coordenada x do segundo ponto: ")) y2 = float(input("Coordenada y do segundo ponto: ")) sinal = "+" # vamos calcular o coeficiente angular da reta m = (y2 - y1) / (x2 - x1) # vamos calcular o coeficiente linear n = y1 - (m * x1) # coeficiente linear menor que zero? O sinal será negativo if (n < 0): sinal = "-" n = n * -1 # mostra a equação reduzida da reta print("Equação reduzida: y = %.2fx %s %.2f" % (m, sinal, n)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Python ::: Dicas & Truques ::: Lista (List) |
Python para iniciantes - Como inserir itens em posições específicas de uma lista usando o método insert()Quantidade de visualizações: 10678 vezes |
Nesta dica eu mostrarei como usar a função insert() do objeto List da linguagem Python para inserir um novo elemento em uma determinada posição da lista. A função recebe o índice no qual o elemento será inserido e o seu valor. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): # cria uma lista de inteiros valores = [2, 5, 12, 2, 3, 32, 18] print("Valores na lista:", valores, "\n") # valor a ser inserido valor = int(input("Informe um inteiro: ")) # índice a ser inserido (começa em 0) pos = int(input("Informe uma posicao: ")) # insere o valor na posição determinada valores.insert(pos, valor) # exibe os valores da lista novamente print("Valores na lista:", valores, "\n") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Valores na lista: [2, 5, 12, 2, 3, 32, 18] Informe um inteiro: 45 Informe uma posicao: 2 Valores na lista: [2, 5, 45, 12, 2, 3, 32, 18] |
Vamos testar seus conhecimentos em |
Vigas a flexão simples: seções retangulares As ações permanentes atuam na estrutura durante toda a sua vida útil, podendo apresentar poucas variações. Em vigas de concreto armado, essas ações normalmente são os carregamentos de paredes, das lajes apoiadas sobre elas e do seu próprio peso. Imagine uma viga de concreto V (15x40) que sustenta uma parede com 18cm de espessura e suporta duas lajes. O pé-direito da edificação é de 3,00m e tanto a viga que sustenta a parede quanto a no topo desta têm altura de 40cm. Considere que as reações de apoio das lajes nessa viga são de 3,55kN/m e 5,40kN/m. Nesse cenário, qual é o carregamento dessa viga? A) 10,45kN/m. B) 11,84kN/m. C) 13,89kN/m. D) 15,39kN/m. E) 16,15kN/m. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Fundações profundas A infraestrutura de fundação de qualquer empreendimento desempenha papel importante no suporte de cargas decorrentes do peso próprio da superestrutura e de sua utilização. As fundações são convencionalmente separadas em dois grandes grupos: superficiais e profundas. Com base no que foi exposto, assinale com V (verdadeiro) ou F (falso) as proposições a seguir. ( ) Estaca escavada mecanicamente é a estaca com a qual um operador, lançando mão de um trado manual, perfura o solo. Isso é feito exclusivamente com revestimento. ( ) Estacas são elementos de fundação profunda com auxílio de ferramentas ou equipamentos. O procedimento pode ser feito por cravação à percussão, prensagem, vibração ou escavação, ou ainda de forma mista, envolvendo mais de um desses processos. ( ) O elemento que transmite a carga proveniente da superestrutura ao terreno pela resistência de ponta ou resistência do fuste, ou ainda pela combinação das duas formas, é classificado como estaca. Assinale a alternativa que indica, de cima para baixo, a ordem correta. A) V, V, V. B) F, F, F. C) V, F, V. D) F, V, F. E) F, V, V. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Número de Froude O número de Froude (Fr) é um coeficiente adimensional, frequentemente utilizado na hidráulica de condutos abertos para determinar a classificação do regime que o escoamento livre apresenta. Quando o Fr é igual a 1, o regime é classificado como crítico; com Fr > 1, o regime é supercrítico; e com Fr < 1, o regime é subcrítico. Sobre esta classificação afirma-se que: A) No regime crítico há equílibrio de forças e a velocidade é menor que a celeridade. B) No regime supercrítico, o escoamento é mais influenciado pelas forças gravitacionais. C) No regime supercrítico, o escoamento é regido pelas energias cinéticas e inerciais. D) No regime subcrítico ou torrencial, as forças gravitacionais regem o escoamento. E) No regime crítico não há equilíbrio entre as energias que influenciam o escoamento. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte código JavaScriptvar a = new Array(); var b = new Array(); a[1] = 3; b[2] = 5; a = b; Quais valores estão contidos em a[1] e a[2] depois da execução deste código? A) a[1] é 3 e a[2] é 5. B) a[1] é indefinido e a[2] é 5. C) ambos a[1] e a[2] são indefinidos. D) A execução deste código provoca um erro. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil no código de defesa do consumidor O fornecedor e o prestador de serviço estarão livres do dever de indenizar caso não haja dano reparável e ficar comprovado que: A) a culpa foi exclusiva do consumidor ou de terceiro. B) a culpa foi do fornecedor. C) ninguém teve culpa. D) todos tiveram culpa. E) não importa quem teve culpa. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |