Estruturas de dados e algoritmos têm uma posição muito importante na ciência da computação. Esta série de artigos tenta usar a linguagem de programação Golang para implementar várias estruturas e algoritmos de dados e analisar os algoritmos adequadamente.
Primeiro, aprenderemos brevemente sobre Golang e entraremos na primeira porta do mundo dos programas de computador.
Uma introdução simples ao Golang
Apenas aprendemos Golang
um subconjunto da linguagem, o suficiente para executar a próxima estrutura de dados e implementação de algoritmos.
1. Introdução
Golang
A linguagem é uma linguagem de programação de alto nível Google
lançada pelo Google em 2007 e lançada oficialmente em 2009 开源
. Endereço de código aberto: https://github.com/golang/go , endereço do site oficial: https://golang.org .
Golang
A sintaxe da linguagem é simples, suporta compilação cruzada de várias plataformas (Linux / Mac / Windows), suporta memória automática GC
(coleta de lixo), suporta C/C++
desenvolvimento incorporado e implementa o agendamento de threads no nível da sintaxe, o desenvolvimento de programas com vários threads é muito conveniente. A sintaxe é muito parecida com C/Python/JavaScript
outras linguagens de programação de alto nível.
Os designers que criaram esse idioma têm o seguinte:
Ken Thompson
: No Bell Labs,Dennis M. Ritche
inventou oC
idioma eUnix
o sistema operacional eRob Pike
inventou aUTF-8
codificação, o vencedor do Turing Award.Rob Pike
: Também participou do desenvolvimento doUnix
sistema operacional,UTF-8
um dos inventores da codificação.Robert Griesemer
: Participei do desenvolvimento deV8 JavaScript
motores eJava HotSpot
máquinas virtuais.
Os dois primeiros são relativamente conhecidos e agora estão aposentados; outros podem usar o Google se estiverem interessados.
2. Instalação e uso simples
Instale Golang: https://golang.org/dl: sistema operacional Windows Clique msi
para instalar de acordo com o prompt, o sistema operacional Mac pode ser usado para brew install golang
instalar
Abra um terminal da linha de comandos e digite:
go version
Os seguintes resultados são exibidos como bem-sucedidos:
go version go1.13 darwin/amd64
Crie um novo arquivo em qualquer pasta main.go
(o Golang
sufixo dos arquivos de programa escritos no idioma deve ser todo .go
):
package main
import (
"fmt"
"time"
)
func init() {
fmt.Println("init will be before hello world")
}
func main() {
fmt.Println("hello world")
fmt.Println("today times:" + time.Now().String())
}
Abra o terminal da linha de comandos para compilar:
go build main.go
Após a compilação, um arquivo binário será gerado na pasta local: main
ou main.exe
(sistema Windows).
Execute binário:
./main
O seguinte resultado será impresso:
init will be before hello world
hello world
today times:2019-12-09 13:14:14.383118 +0800 CST m=+0.000199077
3. Como aprender um idioma
Todo aprendizado de uma linguagem de programação é inseparável do aprendizado de seus recursos de linguagem:
- O que é suportado
基本数据类型
, como números inteiros, números de ponto flutuante, valores booleanos, seqüências de caracteres, aos quais tipos de dados avançados são suportados, como matrizes, estruturas etc. if
Determinewhile
qual é a instrução de loop e se háswitch
ougoto
espera instruções.函数
Qual é a definição de idioma , como passar parâmetros de função, se há algum面向对象
recurso de idioma, etc.package
O que é gerenciamento de pacotes, como gerenciar um projeto, quais bibliotecas padrão o oficial fornece, como processamento de tempo, processamento de strings, biblioteca HTTP, biblioteca de criptografia, etc.- Existem recursos especiais de idioma que não estão disponíveis em outros idiomas, como certos açúcares sintáticos.
Artigo da série
Eu sou a estrela Chen, Bem-vindo eu ter escrito, pessoalmente, estruturas de dados e algoritmos (golang conseguir) , a partir do artigo para ler mais amigável GitBook .
- Estrutura de dados e algoritmo (implementação Golang) (1) Uma introdução simples ao Golang-Prefácio
- Estruturas e algoritmos de dados (implementação Golang) (2) Uma introdução simples aos pacotes, variáveis e funções Golang
- Estrutura de dados e algoritmo (implementação de Golang) (3) Uma introdução simples à declaração de controle de fluxo de Golang
- Estruturas de dados e algoritmos (implementação de Golang) (4) Uma introdução simples às estruturas e métodos de Golang
- Estrutura e algoritmo de dados (implementação Golang) (5) Uma introdução simples à interface Golang
- Estrutura e algoritmo de dados (implementação Golang) (6) Uma introdução simples à simultaneidade, corotinas e canais de Golang
- Estrutura e algoritmo de dados (implementação Golang) (7) Uma introdução simples à biblioteca padrão Golang
- Estrutura de dados e algoritmo (implementação de Golang) (8.1) Conhecimento básico-Prefácio
- Estrutura de dados e algoritmo (implementação de Golang) (8.2) Conhecimento básico - divisão, conquista e recursão
- Estrutura e algoritmo dos dados (implementação Golang) (9) Complexidade básica do algoritmo do conhecimento e símbolo progressivo
- Estrutura de dados e algoritmo (implementação de Golang) (10) Conhecimento básico - o principal método de complexidade de algoritmos
- Estruturas de dados e algoritmos (implementação de Golang) (11) Estruturas de dados comuns - Prefácio
- Estruturas e algoritmos de dados (implementação Golang) (12) Listas comuns vinculadas a estruturas de dados
- Estruturas e algoritmos de dados (implementação Golang) (13) Matrizes comuns de estruturas de comprimento variável
- Estruturas e algoritmos de dados (implementação de Golang) (14) Estruturas de dados comuns - pilha e fila
- Estruturas de dados e algoritmos (implementação de Golang) (15) Lista comum de estruturas de dados
- Estruturas de dados e algoritmos (implementação de Golang) (16) Dicionário de estruturas de dados comum
- Estruturas e algoritmos de dados (implementação de Golang) (17)
- Estrutura de dados e algoritmo (implementação de Golang) (18) Algoritmo de classificação-Prefácio
- Estrutura e algoritmo de dados (implementação Golang) (19) Classificação de algoritmos de classificação por bolhas
- Estrutura de dados e algoritmo (implementação Golang) (20) Classificação de seleção de algoritmo de classificação
- Estrutura e algoritmo de dados (implementação Golang) (21) Classificação de inserção de algoritmo de classificação
- Estrutura de dados e algoritmo (implementação de Golang) (22) Algoritmo de classificação-Classificação de Hill
- Estrutura e algoritmo de dados (implementação Golang) (23) Classificação de algoritmo de mesclagem
- Estrutura e algoritmo de dados (implementação Golang) (24) Classificação da fila de prioridade do algoritmo e classificação da pilha
- Estrutura e algoritmo de dados (implementação Golang) (25) Classificação rápida por algoritmo de classificação
- Estrutura de dados e algoritmo (implementação de Golang) (26) Tabela de algoritmos e hash de pesquisa
- Estrutura e algoritmo dos dados (implementação Golang) (27) Árvore de pesquisa binária do algoritmo de pesquisa
- Estrutura e algoritmo dos dados (implementação Golang) (28) Árvore de algoritmo de pesquisa-AVL
- Estrutura e algoritmo de dados (implementação de Golang) (29) Localização da árvore do algoritmo-2-3 e da árvore vermelha e preta inclinada para a esquerda
- Estrutura e algoritmo de dados (implementado por Golang) (30) Localização da árvore do algoritmo-2-3-4 e da árvore comum de vermelho-preto