摘要: 一、算法原理 二、代码实现 三、算法评价 3.1 时间复杂度 3.2 空间复杂度 3.3 稳定性 阅读全文
posted @ 2023-10-04 23:47 有点成长 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 一、算法原理 二、代码实现 三、算法评价 3.1 时间复杂度 3.2 空间复杂度 3.3 稳定性 阅读全文
posted @ 2023-10-04 23:46 有点成长 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 一、算法原理 二、代码实现 三、算法评价 3.1 时间复杂度 3.2 空间复杂度 3.3 稳定性 阅读全文
posted @ 2023-10-04 23:46 有点成长 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 快速排序的核心思想是:从待排序数组中任选一个数字作为 pivot(分区点),然后遍历所有数组元素,将小于 pivot 的放到左边,将大于 pivot 的放到右边,将 pivot 放到中间,此时,pivot 对应的数字排序完成;再将 pivot 左边和右边的数据,分别按照前面的方法进行排序。 阅读全文
posted @ 2023-10-04 23:46 有点成长 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 归并排序的核心思想是:将待排序数组从中间分成两个子数组,对两个子数组分别排序,然后将排好序的两个子数组合并,这样整个数组就排序完成了。每次合并从两个子数组中逐个取最小值放入合并后数组,这样可以保证合并后的数组有序。 阅读全文
posted @ 2023-10-04 23:44 有点成长 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 排序算法 时间复杂度 空间复杂度 稳定性 算法核心 插入排序 O(n2) O(1) 稳定 插入排序 一、算法原理 插入排序将数组分为已排序区间和未排序区间,初始已排序区间只有数组第1个元素,未排序区间从下标 1 开始到数组末尾。每次取未排序区间的第1个元素,将它插入已排序区间的合适位置,并保证已排序 阅读全文
posted @ 2023-10-04 23:27 有点成长 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 排序算法 时间复杂度 空间复杂度 稳定性 算法核心 选择排序 O(n2) O(1) 不稳定 比较交换 一、算法原理 选择排序将数组分为已排序区间和未排序区间,初始已排序区间无元素,未排序区间从下标 0 开始到数组末尾。每次选择未排序区间的最小元素,将它放到已排序区间末尾。一次选择会让一个元素移动到它 阅读全文
posted @ 2023-10-04 20:44 有点成长 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 排序算法 时间复杂度 空间复杂度 稳定性 算法核心 冒泡排序 O(n2) O(1) 稳定 比较交换 一、算法原理 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,如果不满足大小关系要求,就进行交换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个 阅读全文
posted @ 2023-10-04 20:39 有点成长 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 排序是对批量数据按照一定的顺序进行排列的操作。学习排序算法,就是学习每一种算法的算法原理、代码实现,以及如何评价算法优劣。 阅读全文
posted @ 2023-10-04 17:15 有点成长 阅读(27) 评论(0) 推荐(0) 编辑