diff --git a/Chapter4_数据结构、算法与设计模式/4.2_排序算法.md b/Chapter4_数据结构、算法与设计模式/4.2_排序算法.md index 1c9f034..acc0380 100644 --- a/Chapter4_数据结构、算法与设计模式/4.2_排序算法.md +++ b/Chapter4_数据结构、算法与设计模式/4.2_排序算法.md @@ -1,12 +1,18 @@ # 4.2 排序算法 -排序算法非常有用,除了用于实现类似于“按学生成绩进行排名”这种需求外,其他的一些需求和算法也往往以排序算法为基础。例如,在有序数组中进行查找,就比在无序数组中进行查找快很多,为了获得有序数组,就需要先对数组进行排序。 +排序算法非常有用,除了用于实现类似于“按学生成绩进行排名”这种需求外,其他的一些需求和算法也往往以排序算法为基础。例如,在有序数组中进行查找,就比在无序数组中进行查找快很多,为了获得有序数组,就需要先对数组进行排序。 -常见的三种排序算法为:冒泡排序、选择排序和快速排序。在讲解排序和查找等算法时,往往以数组为对象,但这些算法的应用对象并不仅限于数组。 +常见的三种排序算法为:冒泡排序、选择排序和快速排序。在讲解排序和查找等算法时,往往以数组为对象,但这些算法的应用对象并不仅限于数组。 -## 4.2.1 选择排序 +## 4.2.1 冒泡排序 -选择排序是最简单,也是最容易理解的排序算法。其思想是:每次都从待排序的元素中选取最大/最小的元素,加入到已排序的列表中,直到没有待排序的元素为止。 +俩俩交换 + +比较和交换次数:O(N^2) + +## 4.2.2 选择排序 + +选择排序是最简单,也是最容易理解的排序算法。其思想是:每次都从待排序的元素中选取最大/最小的元素,加入到已排序的列表中,直到没有待排序的元素为止。 例如,将元素按从 A-Z 的顺序进行排列(假设 AB,因此 E 不会被选中,接着 B 与下一个元素 A 比较,由于 AB,因此 E 不会被选中,接着 B 与下一个元素 A 比较,由于 A