自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 异或最大值

最大异或值 题目描述 给定一些数,求这些数中两个数的异或值最大的那个值 输入 多组数据。第一行为数字个数n,1 <= n <= 10 ^ 5。接下来n行每行一个32位有符号非负整数。 输出 任意两数最大异或值 样例输入 3 3 7 9 样例输出 14 解题想法 暴力过不了 解题分为插入和查找两个步骤 建一棵字典树,把每一个数字拓展到32位,因此不能使用int类型进行存储,会溢出 插入时,从数字二进制的高位到低位进行建树,从根节点开始,0则左子节点赋值,1则右子节点赋值 查找时需

2021-07-10 16:27:25 297

原创 算法学习——归并排序

文章目录归并排序一、实现思路二、代码实现注意事项 归并排序 一、实现思路 以有序数据之间的归并为基础,采用分治的策略,即将一组无序的待排数据拆解成两部分进行归并,并且对被拆解的两部分进行递归式求解。由递归的写法中我们无需关心具体每一步分执行的过程,只需当作他返回了正确的有序解。 二、代码实现 void merger(int left, int right) { int mid = (left + right) / 2; int p1 = left; int p2 = mid + 1

2021-07-02 22:33:05 78

原创 算法学习——堆排序

文章目录一、堆排序思路二、代码实现1.堆的调整代码2.堆排序注意事项 一、堆排序思路 1.建堆(一般将给出的无序数据存为一个数组,将数组视作一个堆)。 2.对堆进行维护,使得整个堆符合堆排序的定义。   3.将堆顶元素与堆的最后一个元素交换,并且将堆的最后一个元素取出。 4.重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交换步骤,直到整个序列有序。 二、代码实现 1.堆的调整代码 void adjust(int i, int last) { int left =

2021-06-26 23:51:50 81 2

原创 算法学习——快速排序

算法笔记备忘快速排序1. 基本思想2. 时间复杂度3. 代码实现4. 代码注意点 快速排序 1. 基本思想 以将数据分割成两部分为一趟,其中前面的部份都比中间的数据小(升序情况下),后面的数据都比中间的数据大,之后对分割的两部分分别在进行一趟上述的排序,直到整个数据变成有序序列。一般采取递归写法方便实现。 2. 时间复杂度 O(nlogn) 3. 代码实现 void Qsort(int d[], int low, int height) { if(low >= height)

2021-06-19 15:12:47 84

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除