[TOC]
>[success] ## **1:排序基本介紹**
排序是將一組數據,依指定的順序進行排列的過程。
排序的分類:
1)**內部排序**: 指將需要處理的所有數據都加載到內部存儲器中進行排序。包括(交換式排序法、選擇式排序法和插入式排序法);
2)**外部排序法**:數據量過大,無法全部加載到內存中,需要借助外部存儲進行排序。包括(合并排序法和直接合并排序法)。
交換式排序法
交換式排序屬于內部排序法,是運用數據值比較后,依判斷
規則對數據位置進行交換求以達到排序的目的。
交換式排序法又可分為兩種:
1)冒泡排序法(Bubble sort)
2)快速排序法(Quick sort)
>[success] ### **1.2:冒泡排序實現**

>[success] ### **1.3:查找兩種方式**
>[success] ### **1.4:查找基本介紹**
Golang里面有2中查找方式
1)順序查找
2)二分查找(前提是改數組是有序的)
37.5查找實現:
推薦使用該方法

>[success] ### **1.5:二分查找實現:(未理解)**
>[success] ## **2:二維數組**
多維數組只學習二維數組,二維數組引用場景有,五子棋的棋盤

>[success] ### **2.1:二維數組實現:**
#### 實現如下結果:
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0

<br>
<br>
>[success] ### **2.2:二維數組多種使用**
<br>
<br>
#### **方式1:**

<br>
<br>
#### **方式2:** **注意**: 多維數組只有第一層可以使用...來讓編譯器推導數組長度。例如:

<br>
<br>
>[success] ### **2.3:二維數組遍歷兩種方式**
#### **方式1:**

<br>
<br>
#### **方式2:** 使用for range

<br>
**二維數組練習題:**
**案例1:**
// 找出數組中和為指定值的兩個元素的下標,比如從數組[1, 3, 5, 7, 8]
// 中找出和為8的兩個元素的下標分別為(0,3)和(1,2)

<br>
**案例2:**
// 求數組[1, 3, 5, 7, 8]所有元素的和

>[success] ### **2.4:二維數組內存中的形式**
<br>
<br>

<br>
<br>
>[success] ### **2.5:二維數組的應用案例:**
1)定義二維數組,用于保存三個班,每個班五名同學成績,并求出每個班級平均分、以及所有班級平均分

>[success] ### **2.6:同類型數組賦值給另一個數組**

**復制之后,兩個數組指向同一組字符串**

**如圖:兩組指向同樣字符串的數組**
- Golang語言之旅
- 第一章:初始小節以及安裝
- 一:Golang語言特性
- 二:Windows上安裝Go語言開發包
- 三:在Mac OS上安裝Go語言開發包
- 第二章:GO語言注意事項
- 一:Dos的常用指令
- 第三章:Go初識小菜
- 一:Go語言之變量與常量
- 二:Go內置值-引用類型
- 三:基本的數據類型
- 四:字符串(char)
- 五:布爾類型(bool)
- 六:字符串類型(string)
- 七:基本數據類型的默認值
- 八:基本數據類型的互相轉換
- 九:基本數據類型和string類型的相互轉換
- 十:Golang指針
- 十一:值類型和引用類型
- 十二:標識符和命名規范
- 十三:系統保留關鍵字and預定義標識符
- 十四:fmt常用方法解析
- 第四章:Go運算符
- 一:運算符的基本介紹
- 二:算術運算符
- 2.1:算數運算符細節
- 三:關系運算符
- 3.1:關系運算符細節
- 四:邏輯運算符
- 4.1:邏輯運算符細節及案例
- 五:Go賦值運算符
- 5.1:案例演示賦值運算符的基本使用
- 5.2:賦值運算符的特點
- 六:Go位運算符
- 七:其他運算符
- 八:運算符的優先級
- 九:控制臺輸入語句
- 十:進制
- 十一:位運算
- 第五章:流程控制大綱
- 一:if語句
- 二:switch語句
- 三:for循環
- 第六章:函數-包-錯誤處理
- 一:Go函數
- 二:Go包
- 三:匿名函數
- 四:閉包
- 五:函數defer
- 六:函數參數的傳遞方式
- 七:變量的作用域
- 八:時間和日期相關函數
- 九:new和recover異常
- 十:數組(Array)切片(Section)
- 十一:切片(slice)
- 十二:3 數組的排序和查找
- 第七章:Map
- 第一節:Map基礎認識
- 第二節:Map初始化和make
- 第三節:Map增刪改查
- 第四節:Map的切片
- 第五節:Map的注意事項
- 第八章:面向對象(上)
- 第一節:結構體(值類型)
- 第二節:方法
- 第三節:面向對象編程應用實例
- 第九章:面向對象(下)
- 第一節:面向對象之抽象
- 第二節:面向對象之繼承
- 第三節:面向對象之多態
- 第四節:接口
- 第十章:文件操作
- 第一節:文件基本介紹
- 第二季:寫文件實例操作
- 第三節:JSON
- 第十一章:單元測試
- 第一節:單元測試介紹
- 第二節:單元測試案例
- 第三節:單元測試總結
- 第四節:單元測試案例
- 第十二章:goroutine和channel
- 第一節:goroutine基本介紹
- 第二節:goroutine入門案例
- 第三節:goroutione調度模型
- 第四節:Golang設置運行的CPU數量
- 第十二章:channel
- 第一節:channel基本介紹
- 第二節:channel基本使用
- 第三節:channel案例演示
- 第四節:channel 使用的注意事項
- 第五節:channel練習題
- 第六節:channel的遍歷和關閉
- 第七節:goroutione和channel結合
- 第八節:channel細節處理
- 第十二章:并發模式
- 第十三章:反射reflect
- 第一節:反射基本介紹
- 第二節:反射重要的函數和概念
- 第三節:反射快速入門案例
- 第四節:反射注意事項
- 第五節:反射練習題
- 第六節:反射最佳實踐