算法学习
Geometry2
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
3.归并排序
算法思想是什么?从中间断开,然后合并算法步骤是什么?1.确定分界点,mid=(1+r)/22.递归排序left、right3.归并-合二为一算法代码是什么?#include <iostream>using namespace std;const int N = 1e5 + 10;int a[N], tmp[N];void merge_sort(int q[], int l, int r){ if (l >= r) return;原创 2022-02-12 21:54:14 · 510 阅读 · 0 评论 -
2.第k个数(快速排序选择)
算法思想是什么?快速排序,个数是位数的象征,第k个数始终在个数多的那一边。算法步骤是什么?1.不管三七二十一先找个目标X分两边,此时X左边都<=X,右边>=X,也就能确定目标X在数列中的真实位置。2.查看k是否<左边个数,如果小于说明在左侧内,左侧递归排序再找到K就OK,反之在右边。例:第三位要在第七位前面找。3.最终无限夹击找到K。算法代码是什么?#include <iostream>using namespace std;const int原创 2022-02-10 16:59:52 · 790 阅读 · 0 评论 -
1.快速排序(双指针法)
算法思想是什么?分治算法步骤是什么?1.选择数组中的第一个元素arr[startIndex]作为轴(pivot)2.左指针为left,从最左边开始寻找第一个比pivot大的数3.右指针为right,从最右面的一个元素开始向左寻找第一个小于等于pivot的数值4.经过2,3两个步骤后,将会出现以下两种情况 (1):left和right没有相遇,此时进行交换,swap(arr,left,right); (2):left和right相遇,做swap(arr,startIndex原创 2022-02-10 14:52:08 · 2425 阅读 · 1 评论
分享