算法学习
Uarebaby.c
这个作者很懒,什么都没留下…
展开
-
数的范围(二分,不用考虑边界问题版,点击就会)
就是找单调性用二分查找元素要求数组的有序性或者拥有类似有序的性质。只有所要寻找的数组能够满足某一条件而被分成两边,就可以进行二分。L的初始值为-1,R的初始值为N首先,如果二分本来就没有结果的话,程序是一定有结果的。原创 2023-11-29 16:21:14 · 1021 阅读 · 1 评论 -
逆序对的数量(分治思想,归并排序衍生,参考yxc算法基础课)
逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。数列中的元素的取值范围 [1,109]。第二行包含 n 个整数,表示整个数列。第一行包含整数 n,表示数列的长度。输出一个整数,表示逆序对的个数。原创 2023-11-29 15:29:06 · 407 阅读 · 1 评论 -
归并排序实现
归并排序本质上是双指针排序,核心操作主要是把数组一分为二递归以及将两个有序的数组归并成一个有序的数组。原创 2023-11-28 14:34:28 · 348 阅读 · 1 评论 -
快速排序实现和边界问题分析
当x等于q[l + r + 1 >> 1] 或者q[r] 只能使用quick_sort(l, i - 1), quick_sort(i, r)当x等于q[l + r >> 1] 或者q[l] 只能使用quick_sort(l, j), quick_sort(j + 1, r)X的数时就停止,j遇到小于等于x的数就停止,然后交换a[i], a[j]。当x = q[r]时 与x = q[l + r + 1 >> 1] 同理。当x = q[l]时 这时与x = q[l + r >> 1] 同理。原创 2023-11-28 13:41:01 · 535 阅读 · 1 评论