データ構造とアルゴリズムは、コンピュータサイエンスにおいて非常に重要な位置を占めています。この一連の記事では、Golangプログラミング言語を使用してさまざまなデータ構造とアルゴリズムを実装し、アルゴリズムを適切に分析しようとしています。
まずGolangについて簡単に学び、次にコンピュータプログラムの世界の最初のドアに入ります。
Golangの簡単な紹介
Golang
次のデータ構造とアルゴリズムの実装を実行するのに十分な言語のサブセットのみを学習します。
1.はじめに
Golang
この言語は、Google
2007年にGoogle によって開始され、2009年に正式にリリースされた开源
高水準プログラミング言語です。オープンソースアドレス:https : //github.com/golang/go、公式ウェブサイトアドレス:https : //golang.org。
Golang
言語構文はシンプルで、マルチプラットフォームのクロスコンパイル(Linux / Mac / Windows)をサポートし、自動メモリーGC
(ガベージコレクション)をサポートし、組み込みC/C++
開発をサポートし、構文レベルでスレッドスケジューリングを実装し、マルチスレッドプログラムの開発は非常に便利です。構文は、C/Python/JavaScript
他の高水準プログラミング言語と非常によく似ています。
この言語を設計したデザイナーには次のものがあります。
Ken Thompson
:Bell LabsでDennis M. Ritche
、C
言語とUnix
オペレーティングシステムをRob Pike
発明し、UTF-8
コーディングを発明して、チューリング賞を受賞しました。Rob Pike
:エンコーディングの発明者の一人であるUnix
オペレーティングシステムの開発にも参加UTF-8
。Robert Griesemer
:V8 JavaScript
エンジンとJava HotSpot
仮想マシンの開発に参加。
最初の2つは比較的よく知られており、現在は廃止されています。興味があれば、他のGoogleを利用できます。
2.インストールと簡単な使用
Golangのインストール:https://golang.org/dl: Windowsオペレーティングシステムmsi
プロンプトに従ってクリックしてインストールします。Macオペレーティングシステムを使用してbrew install golang
インストールできます。
コマンドラインターミナルを開き、次のように入力します。
go version
次の結果が成功として表示されます。
go version go1.13 darwin/amd64
任意のフォルダーに新しいファイルを作成しますmain.go
(Golang
言語で記述されたプログラムファイルのサフィックスはすべてでなければなりません.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())
}
コマンドラインターミナルを開いてコンパイルします。
go build main.go
コンパイル後、バイナリファイルがローカルフォルダに生成されます:main
またはmain.exe
(Windowsシステム)。
バイナリを実行します。
./main
次の結果が出力されます。
init will be before hello world
hello world
today times:2019-12-09 13:14:14.383118 +0800 CST m=+0.000199077
3.言語を学ぶ方法
プログラミング言語のすべての学習は、その言語機能の学習と不可分です。
- どのようなサポート
基本数据类型
、整数、浮動小数点、ブール、文字列、アレイ、支持構造などの高度なデータタイプとして、。 if
判決やwhile
ループ、何があるかどうswitch
かgoto
、他の書類。- 言語
函数
の定義とは何か、関数パラメータを渡す方法、面向对象
言語機能があるかどうかなど。 package
パッケージ管理とは何か、プロジェクトの管理方法、時間処理、文字列処理、HTTPライブラリ、暗号化ライブラリなど、オフィシャルが提供する標準ライブラリは何か。- 特定の構文シュガーなど、他の言語では使用できない特別な言語機能はありますか?
シリーズ記事エントリー
私は、スター陳思い、私が個人的に書かれているようこそ(Golangが達成)のデータ構造とアルゴリズムの記事で始まる、より親しみやすいGitBookを読むために。
- データ構造とアルゴリズム(Golang実装)(1)Golang-Prefaceの簡単な紹介
- データ構造とアルゴリズム(Golang実装)(2)Golangパッケージ、変数、関数の簡単な紹介
- データ構造とアルゴリズム(Golang実装)(3)Golangフロー制御ステートメントの簡単な紹介
- データ構造とアルゴリズム(Golang実装)(4)Golang構造とメソッドの簡単な紹介
- データ構造とアルゴリズム(Golang実装)(5)Golangインターフェースの簡単な紹介
- データ構造とアルゴリズム(Golang実装)(6)Golang並行性、コルーチン、チャネルの簡単な紹介
- データ構造とアルゴリズム(Golang実装)(7)Golang標準ライブラリの簡単な紹介
- データ構造とアルゴリズム(Golang実装)(8.1)基本的な知識-序文
- データ構造とアルゴリズム(Golang実装)(8.2)基本的な知識-分割と征服と再帰
- データ構造とアルゴリズム(Golang実装)(9)基本的な知識アルゴリズムの複雑さとプログレッシブシンボル
- データ構造とアルゴリズム(Golang実装)(10)基本知識-アルゴリズムの複雑さの主な方法
- データ構造とアルゴリズム(Golang実装)(11)一般的なデータ構造-序文
- データ構造とアルゴリズム(Golang実装)(12)一般的なデータ構造にリンクされたリスト
- データ構造とアルゴリズム(Golang実装)(13)一般的なデータ構造-可変長配列
- データ構造とアルゴリズム(Golang実装)(14)一般的なデータ構造-スタックとキュー
- データ構造とアルゴリズム(Golang実装)(15)一般的なデータ構造-リスト
- データ構造とアルゴリズム(Golang実装)(16)一般的なデータ構造-辞書
- データ構造とアルゴリズム(Golang実装)(17)一般的なデータ構造ツリー
- データ構造とアルゴリズム(Golang実装)(18)ソートアルゴリズム-序文
- データ構造とアルゴリズム(Golang実装)(19)ソートアルゴリズム-バブルソート
- データ構造とアルゴリズム(Golang実装)(20)ソートアルゴリズム選択ソート
- データ構造とアルゴリズム(Golang実装)(21)ソートアルゴリズム挿入ソート
- データ構造とアルゴリズム(Golang実装)(22)ソートアルゴリズム-ヒルソート
- データ構造とアルゴリズム(Golang実装)(23)ソートアルゴリズム-マージソート
- データ構造とアルゴリズム(Golang実装)(24)ソートアルゴリズム-優先度キューとヒープソート
- データ構造とアルゴリズム(Golang実装)(25)ソートアルゴリズム-迅速なソート
- データ構造とアルゴリズム(Golang実装)(26)ルックアップアルゴリズム-ハッシュテーブル
- データ構造とアルゴリズム(Golang実装)(27)検索アルゴリズム-バイナリ検索ツリー
- データ構造とアルゴリズム(Golang実装)(28)検索アルゴリズム-AVLツリー
- データ構造とアルゴリズム(Golang実装)(29)検索アルゴリズム-2-3ツリーと左寄りの赤黒ツリー
- データ構造とアルゴリズム(Golangによって実装)(30)検索アルゴリズム-2-3-4ツリーと通常の赤黒ツリー