ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

反正我就这一招了

2019-09-06 19:00:49  阅读:223  来源: 互联网

标签:反正 int 问题 算法 bool 双线 一招 排序


第四章 算法初步

1、插入排序
和我们之前提到的问题一样,学好循环是如此之重要。
循环什么时候会停止?当出现第一个打破元素的时候。
以升序排列为例,设当前处理的元素为x,如果x前面的元素t大于x,t就要前移,跳出循环的时候,当下的元素为小于等于x,它前面的位置才是x应该呆的地方。
2、分治
忘了递归吧,从今往后只认识分治!
3、归并排序
同向双线算法,自下而上。
4、快速排序
异向双线算法,自上而下,非常非常漂亮的一个算法!
5、番外传
我个人认为,算法的本质都写在离散数学里了,自己以前虽然学过一点,但却感觉虚无缥缈,写了这么多代码之后应该不会再那样了,毕竟这是多么痛的领悟!
根据离散数学的章节:数理逻辑、集合论、代数结构、组合数学、图论、数论。我们解题的时候可以往上面靠,还有集众家之所长的动态规划,都是我们灵感的源泉!
6、总结
我个人认为这是最最重要的一章,他们浑然天成,彼此分离但又相互作用。
排序会破坏数组下标集到数据集的映射关系,所以排序过后,我们需要用hash表存储键值到数据集的映射关系。
分治不仅仅是一种算法,更是一种思维,它深刻地影响到一个人解决问题的能力。
贪心利用了序列良好的性质,但有时候序列并没有这种性质,于是我们需要用排序来降低序列的嫡值。
二分法的本质就是双线算法。
双线算法是一个非常核心的算法,比如暴力搜索。
这些算法他们各有千秋,无法评定他们之间的重要性,犹如道家的五行,但只相生,不相克,万法归一。

第五章 数学问题

1、简单数学
这个名字起的不好,我来起一个吧!就叫找规律数学,不要妄想用暴力解或者其他方法求解,只要确定了这是个找规律的算法题,那么你用其他的做法多半凉凉,因为你没有充分利用数据或问题独有的性质。
如何找规律呢?我目前能想到的只有“分治”和“排列组合”
2、判断素数
定义判别法:

bool isPrime(int n){
	if(n<=1) return false;
	int sqr=(int)sqrt(1.0*n);
	for(int i=2;i<=sqrt;i++) 
		if(n%i==0) return false;
	return true;
}

埃氏筛法:

const int maxn=110;
int prime[maxn];
bool isPrime[maxn]={true};
void findPrimes(){
	for(int i=2;i<maxn;i++){
		if(isPrime[i]==true)
				for(int j=i+i;j<maxn;j+=i) isPrimes[j]=false;
	}
}

第六章 STL

1、set
set可以帮助我们自动排序,但有时我们需要hash表来帮助我们索引set中的元素。

struct node{
	xxx x
	bool operator <(const node &n) const{
		xxxxxx;
	}
}

2、string
字符串比较规则:从低位到高位开始比较,某位大的赢,如果某个字符串都到头了还是一样,则长的赢。
3、priority_queue
基本数据类型:

priority_queue<int, vector<int>, less<int>> q;
priority_queue<int, vector<int>, greater<int>> q;

结构体:重载比较运算符
4、记忆方法
你能想到的、合理的它都有。

第七章 线性结构

1、栈
说句题外话吧,借助我们对bool变量用法的思路,先假设一个问题可以进行如下操作然后再进行验证好像可以屏蔽细节,待验证~
2、队列
对真正问题产生影响的因素是什么?
3、链表
假的!借助链表考排序~

第八章 搜索专题

还是说句题外话,搜索必须沿着一种路径,路径就是一种关系,所以,确定关系。

第九章 树

1、并查集
并查集就是一个森林,我们在前一张讲过了,搜索必须要有关系,并查集的关系就是(索引下标,索引对象)
2、堆
堆就是一个完全二叉树,假设序列以0开头,关系为:

leftChild=root*2+1;
rightChild=root*2+2;
root=(anyChild-1)/2

3、哈弗曼树
至今没考过,蛮简单的。
4、领悟
树就是图!

第十章 图

1、dijkstra算法
别的问题好像都可以转化为用dijkstra算法解决的问题,我是这么认为的,没试过~
2、最小生成树算法
还没有考过~
3、关键路径
很多人说这次可能考这个,我没做过这种题目,但我认为双边权就可以把这个问题转化为最短路径问题,如果考到了,等炮灰向你们报告最新战况~
4、注意
边单向还是双向?
如何建立关系决定了问题是否可以被顺利解决,比如微博转发那道题!

结语

我感觉我对问题的理解已经比较到位了,但实操不行,但我就这点小伎俩,希望姥姥可以手下留情!

标签:反正,int,问题,算法,bool,双线,一招,排序
来源: https://blog.csdn.net/weixin_43894218/article/details/100583005

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有