摘要:
基本思想:分治。 归并排序是以数组的中间点来分。 时间复杂度确定是nlogn 1:确定分界点mid = (l + r) / 2,是下标的中间值。 2:递归排序左右两边。排完序后,左右两边都是有序的了。 3:归并。把两个有序的数组,归并成一个有序的数组。 1 #include <bits/stdc++ 阅读全文
posted @ 2020-06-27 14:22
kyk333
阅读(154)
评论(0)
推荐(0)
摘要:
保证第k小的数永远在区间里面。 注意:本题是允许有重复数字的。 比如,1 1 2 2 3 3这六个数中,第2小的是1,第5小的是3。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 100010; 4 int a[N 阅读全文
posted @ 2020-06-27 13:19
kyk333
阅读(368)
评论(0)
推荐(0)
摘要:
快速排序的基本思想是分治。 快速排序的步骤: 假设区间是从l到r的话 1:确定分界点x。在要排序的数组内找到一个数作为分界点x。(q[l], q[(l + r) / 2], q[r], 随机值) 2:划分区间。使得左区间里的数都小于等于x,右区间里的数都大于等于x。快速排序是选择一个数来划分区间。 阅读全文
posted @ 2020-06-27 12:18
kyk333
阅读(188)
评论(0)
推荐(0)

浙公网安备 33010602011771号