基于fortran的算法系列--1.前言
前言:1.本来打算学习逆向逆向相关方面,但是想象远远跟不上现实,这方面并不是那么好学。故而干回了本行。目前,新的计算模型大多是采用c++、python做的,但是一些古老的模型是fortran开发的。如今,fortran发展速度很慢,但是c++、python在飞速发展,以至于fortran的优点已经不是以前那么明显。再者,fortran各编译器不兼容,因为是不同团队开发的,而官方的编译器貌似不再更新了,而这,会让你根本找不到错误之处。之所以没有转行,我也没办法,实在不喜欢c与java的代码风格。
2.fortran是最早的高级语言,个人认为其唯一的优点是运行速度快,因而有必要也只能对这方面进行一番吹捧,借用玩家对某人物的吹捧:“棘手,怀恋,摧毁”的时间之神。个人目前所知,fortran中并不存在以下结构:堆,栈,树,队列,图等;因此,当面临到这些问题时,一是避开,二是巧妙化解,三是放弃。基于此,采用fortran实现一些算法,很难,虽然勉强可以实现,但是小题大做。
3.之所以现在才写前言,一是之前没顾上,二是试水,免得大型翻车。前期将分享学习基本算法,后期将分享学习 机器学习 相关的基础算法,代码采用的大都是子程序(方法)。至于 算法的应用,如果以后有时间,我将展开 算法应用系列。
4.面对一个问题,基于fortran,首先应该想到以下算法:分治,递归,暴力遍历。fortran不受公众欢迎,并非一无用处:数值计算、气象模式、水文地质、流体力学、工程计算...某些大型模型,10+万行的代码,再加上老语法的结构混乱,用c++等其它语言实现重构很难。因此,fortran是历史。
5.前几帖中,我多次提到了 暴力遍历 方法,这看起来很愚蠢,但又不失为一种方法。没有问题是暴力解决不了的,如果有,那就是时间问题,但是,对fortran而言,谈时间就是耍流氓。算法的目的,一是节省空间,二是主要的,节省时间。相比于其它语言采用优化算法,fortran采用暴力遍历方法于时间方面并不逊色,甚至更快。如果说python是蟒蛇,那么在时间方面,fortran就是苍鹰。看图:
逆向方面,作为一个爱好保留吧,实际用它去赚钱,可能很难,除非达到相当水平........ 逆向方面,作为一个爱好保留吧,实际用它去赚钱,可能很难,除非达到相当水平....... 这个好棒啊,算法大佬 来向大佬学习 谢谢分享 谢谢分享 感谢楼主 好啊好啊~这不错~感想分享~ 谢谢分享