ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] >[success] ## **1:排序基本介绍** 排序是将一组数据,依指定的顺序进行排列的过程。 排序的分类: 1)**内部排序**: 指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法); 2)**外部排序法**:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)。 交换式排序法 交换式排序属于内部排序法,是运用数据值比较后,依判断 规则对数据位置进行交换求以达到排序的目的。 交换式排序法又可分为两种: 1)冒泡排序法(Bubble sort) 2)快速排序法(Quick sort) >[success] ### **1.2:冒泡排序实现** ![](https://img.kancloud.cn/15/03/1503d90edbc7bcbeb0c0f01951ff914b_1088x720.png) >[success] ### **1.3:查找两种方式** >[success] ### **1.4:查找基本介绍** Golang里面有2中查找方式 1)顺序查找 2)二分查找(前提是改数组是有序的) 37.5查找实现: 推荐使用该方法 ![](https://img.kancloud.cn/8a/f2/8af2f01475ebd5f65b3a91d3264ff609_1280x636.png) >[success] ### **1.5:二分查找实现:(未理解)** >[success] ## **2:二维数组** 多维数组只学习二维数组,二维数组引用场景有,五子棋的棋盘 ![](https://img.kancloud.cn/f5/5c/f55c82ae135ff2a184f93ae4cfa7d834_1245x720.png) >[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 ![](https://img.kancloud.cn/c2/89/c289480cbb182c5af978562bb0b68368_1280x573.png) <br> <br> >[success] ### **2.2:二维数组多种使用** <br> <br> #### **方式1:** ![](https://img.kancloud.cn/e6/43/e643bb56b6946173b8e44e640f5cfe9c_1280x387.png) <br> <br> #### **方式2:** **注意**: 多维数组只有第一层可以使用...来让编译器推导数组长度。例如: ![](https://img.kancloud.cn/80/5d/805db28b9460ee511c4aa9802bf15643_1280x644.png) <br> <br> >[success] ### **2.3:二维数组遍历两种方式** #### **方式1:** ![](https://img.kancloud.cn/78/67/78678d085eef526657a79d01d2f5bf61_1003x720.png) <br> <br> #### **方式2:** 使用for range ![](https://img.kancloud.cn/1f/9f/1f9fddc8654c915fb561a59092a409f2_1280x650.png) <br> **二维数组练习题:** **案例1:** // 找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8] // 中找出和为8的两个元素的下标分别为(0,3)和(1,2) ![](https://img.kancloud.cn/15/97/1597d7e493a3c80439ea6720dedc0f26_1280x594.png) <br> **案例2:** // 求数组[1, 3, 5, 7, 8]所有元素的和 ![](https://img.kancloud.cn/d4/6d/d46d376647c4064358f188855e22204e_1280x650.png) >[success] ### **2.4:二维数组内存中的形式** <br> <br> ![](https://img.kancloud.cn/7c/52/7c523ddc33246098c31883553638cc70_1280x369.png) <br> <br> >[success] ### **2.5:二维数组的应用案例:** 1)定义二维数组,用于保存三个班,每个班五名同学成绩,并求出每个班级平均分、以及所有班级平均分 ![](https://img.kancloud.cn/81/bf/81bfede7a524997b70380ae61c90f8f2_1158x720.png) >[success] ### **2.6:同类型数组赋值给另一个数组** ![](https://img.kancloud.cn/84/b6/84b67ac5779ebdcb30860f5f34a06504_1280x671.png) **复制之后,两个数组指向同一组字符串** ![](https://img.kancloud.cn/f0/7c/f07ccadb03466a9412b9c988c5e638af_930x720.png) **如图:两组指向同样字符串的数组**