- 博客(2)
- 收藏
- 关注
原创 【C++】 归并排序
归并排序的核心思想是分治,对于一个数列,设左端点 q[l] ,右端点 q[r]1. 确定分界点。选择中心点作为分界点,即 mid = (l + r) / 2 。2. 递归排序左右两段子列。3. 归并——合二为一。算法思想:在左侧子列头部取指针 i ,即 i = l ,在右侧子列头部取指针 j ,即 j = mid + 1 ,循环以下过程:比较 q[i] 和 q[j] 的大小,将较小者存入临时数列 tmp[] 中,同时较小者对应的指针++ 。循环过程直至 i > mid 或 j >
2022-04-15 14:25:06
289
原创 【C++】 快速排序
快速排序的核心思想是分治,对于一个数列,设左端点 q[l] ,右端点 q[r]1. 确定分界点。对于快排来说,理论上选取数列的任意分解点都可以,常用的有q[l] ,q[r] ,q[(l + r) / 2] ,但是不同的选择可能会出现不同的边界条件问题,假设此处选择的分界点的值为 x 。2. 调整区间。核心做法是要将数列分成以 x 为界的两段,x的左侧子列 ≤ x ≤ x的右侧子列,左右侧子列内部并不一定要有序。算法思想:在数列头部取指针 i ,尾部取指针 j ,首先判断 i 指向的数据是否小于
2022-04-15 14:00:13
1089
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人