비고
6740 단어 bigonotationalgorithmsco
알고리즘 분석
코모 토나르 수(Como tornar seu algoritmo mais escal á velque)와 트레타(tretas)가 트위터(Twitter)에서?
Quando se começa programmar tem um momento durante o aprendizado em que vocètem um“click”vocècomeça pensar nos problemas do ponto de vista de um programador.Nãtem mais volta,vocêestáfadado ao resto da vida olhar para um interruptor e pensar:
if interruptor == up {
turnLightOn()
} else {
turnLightOff()
}
Parece que o cérebro functiona com lógica boleana,sóque não,vocèlevou muito tempo para que em determinado momento a sua cabeça se voltasse para as coisas dessa forma,issoéa construço de muito trabalho,ao mesmo tempo Parece que foi sim um“click”,isso porque nãpercebemos a nós mesmos com muita clareza.
Um dos“clicks”que ainda podem acontecer ou jáaconteceu com vocè,équando temos Um determinado problem e para resolvèlo deixamos de pensar assim:“Como posso resolver isso?”
Para pensar assim:“Jasei como resolver,mas essa soluçoésuficiente?”“elaéescalável ou legível?”.
conseguimos 해상도 문제에서 porém quando somos iniciates e todo desafio proposto parece complado nossa única preocupa ço é apenas 해상도 da forma que for poss ível.a aquié quando já temos bagagem em resolver problemas, só que agora levamos menos temo e temos o privil é gio de pensar em uma implementa ço diferente.
Acho aceitável uma soluço não escalável em um cenário onde seéiniciante,não cobraria isso de Algueém queéum estagiário por Examplo,nem daria acesso a ele pontos do sistema que possam ser críticos.
Não quero ser o cara que fala“se vocèNão sabe Estrutura de Dados e Algoritmos vocèmal programador”,mas se vocèquer ter um segundo“click”e começar a ver a programmaèo sob mais uma perspectiva recomendo muito que estude sobre.
복잡한 알고리즘
A complexidade um algoritmoéanalisada em termos de tempo e espaço.Normalmente,o algoritmo teráum desempenho diferente com base no processador,disco,memória e outros par–metros de hardware.복잡한 알고리즘Sendo o Algoritmo um agrupamento de etapas para se executar uma tarefa.O tempo que leva para um algoritmo ser concluídoébaseado no número de passos.
Digamos que um algoritmo percorre um array de dez posiçes somando oíndice das posiçes a 200.
복잡한 의갑 10 X T,sendo que T representa o tempo necess á rio para atualizar todos os elementos do array com A opera ão de soma.Comocadacomputadorpodeser muito differenteum do outro isso varia de acordocomo hardware, 실용 언어와 운영체제.
package main
import "fmt"
func main() {
var arr [10]int
for indice := 0; indice < len(arr); indice++{
arr[indice] = indice + 200
fmt.Printf("indice[%d] = %d\n", indice, arr[indice])
}
}
출력:
indice[0] = 200
indice[1] = 201
indice[2] = 202
indice[3] = 203
indice[4] = 204
indice[5] = 205
indice[6] = 206
indice[7] = 207
indice[8] = 208
indice[9] = 209
Temos 10 operaões Acontechendo,aparentemente muito simples.
Com uma Notaççoépossível calcular a complexidade um algoritmo sem precisar levar em consideraço parçmetros de hardware.
큰 O 기호
큰 O 기호인 uma nota çã O special que indica A complexidade um algoritmo.Na realidade existem várias notaçes:big e small O,big e small omega e theta."limite por cima", omega sobre"limite por baixo"e a thetaé a combina de ambos.Os'작다'는 afirma çes mais r í gidas sobre a complexidade do que Os'대'를 대표한다.Geralmente a big Oémais utilizada porque O interestéverificar O máximo de recursos que O algoritmo vai utilizar,sem tanta rigidez,e entãO tentar reduzir isso,quando possível.
하나의 função de tempo T(n)는 복잡한 do algoritmo onde T(n)=o(n)afirmando que um algoritmo temuma complexidade linear de tempo를 대표한다.Pois o TEMPOécompletamente relacionado a N o tamanho de input do algoritmo(eás vezes também outros aspectos).
Geralmente a maioria do material relacionado a Big Oéformula demais,talvez isso afaste um pouco as pessoas mas com um pouquinho de dedicaãO a gente consegue enxergar os padrões.
Em Big O 표현법, 예를 들어 복잡도 de tempo linear,logar ítmica, c ú bica e quadr áticas ú representa öes de complexidades differentes de rela ço entre e N Emum 알고리즘.큰 O 기호인 també mé usada para, determinar quanto espa ço é consumido pelo algoritmo.
Então vocêpode visualizar de forma gráfica como functiona o crescimento de tempo e de tamanho do input e como eles se relacionam.최종 결과가 없으면 상대적인 중심은 하나의 중심이고 실행 알고리즘의 속도이다.중요사항:nem sempre o desempenho do algoritmoé afetado apenas pelo tamanho da entrada.O algoritmo de ordenaãO counting sort,por exemplo,éafetado também pelo maior número na lista.
Vou falar sobre as principais funões de complexidade,e invoko dar maior enfase na complexidade de tempo,mais tarde assuntos como recurseão vão aparecer então Vou diluindo isso durante o processo.Vocêpode estar se perguntando“ok mas como eu calculo isso?”당신은 어떤 복잡한meu 알고리즘을 가지고 있습니까?
Reference
이 문제에 관하여(비고), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/vapordev/bigo-123e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
if interruptor == up {
turnLightOn()
} else {
turnLightOff()
}
package main
import "fmt"
func main() {
var arr [10]int
for indice := 0; indice < len(arr); indice++{
arr[indice] = indice + 200
fmt.Printf("indice[%d] = %d\n", indice, arr[indice])
}
}
indice[0] = 200
indice[1] = 201
indice[2] = 202
indice[3] = 203
indice[4] = 204
indice[5] = 205
indice[6] = 206
indice[7] = 207
indice[8] = 208
indice[9] = 209
Reference
이 문제에 관하여(비고), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vapordev/bigo-123e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)