![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
IMBA鑫鑫
这个作者很懒,什么都没留下…
展开
-
[算法]-快速排序
#include<iostream> using namespace std; void quicksort(int a[],int low,int high){ if(low>=high){//碰面了 此时已经分割完毕 return; } int first=low; int last=high; int key=a[first];//定义一个轴点 wh...原创 2019-03-07 21:17:20 · 121 阅读 · 0 评论 -
[算法]-归并排序
归并排序的思想就是分治法,将数组一直平分,直至最后平分的那部分只有两个元素时候进行比较排序,然后将这个排好序的数组(2个元素)和当时另外一边被平分的数组(2个元素)继续进行比较排序,整合成一个新的数组(4个元素),…直至最终将两个有序的数组进行比较排序最后整合出结果 附上(数据结构c++)书上实例图 代码如下: #include<bits/stdc++.h> using namesp...原创 2019-03-17 17:40:10 · 152 阅读 · 0 评论 -
[算法]-选择排序
选择排序 思想: 1.设定一个k值初始为0 2.从下标k+1起,遍历数组a,找到数组中最小的数的下标j 3.交换a[k]和a[j]的值 4.k自增1 5.重复2~4步骤 直到k值为数组a长度-1 代码如下: #include<bits/stdc++.h> using namespace std; void chooseSort(vector<int> &a...原创 2019-04-11 12:52:59 · 159 阅读 · 0 评论 -
[算法]-硬币兑换
思路:根据题意,我们要优先选择尽可能多的硬币种类,其次在种类相同的情况下,所选择的硬币数也要越多越好,所以当我们满足种类最多的情况下应该优先选取面值为1的硬币。 这就是一个贪心的策略选择问题了.我们可以先作几个例子试试 假设当n为1的时候,我们只能选取面值为1的硬币 1枚。 当n为2的时候,我们可以选择面值为1的硬币 2枚或者面值为2的硬币 1枚,由于题意,我们肯定取前者 当n为3的时候,因为种...原创 2019-04-09 19:01:09 · 2133 阅读 · 0 评论 -
[算法]-括号匹配深度
思路:由于输入的是合法的括号序列,运用栈的思想,每次进入一个左括号,一个暂存量一定是+1的,每当进入一个右括号,就得和之前的左括号进行抵消,于是这个暂存量就-1了,最大深度通过max函数求得暂存量和当前深度的最大值即可。 通俗的来说就是遍历字符串 记录最大’连续’左括号数量,遇到右括号要相应消去一个左括号数量 ,由于题目输入是合法的 所以最大’连续’左括号数量就是这个序列的深度。 #includ...原创 2019-04-09 20:00:09 · 1021 阅读 · 0 评论