Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 使用shell脚本介绍算法是一个好主意吗_Algorithm_Bash_Shell_Unix - Fatal编程技术网

Algorithm 使用shell脚本介绍算法是一个好主意吗

Algorithm 使用shell脚本介绍算法是一个好主意吗,algorithm,bash,shell,unix,Algorithm,Bash,Shell,Unix,目前,我已将学习Unix/Shell脚本和阅读CLR Algo书籍列为最重要的优先事项。我在考虑是否可以使用shell脚本解决CLR中提到的算法问题。请注意,我是Unix/Shell脚本的新手 不,不是。Shell脚本绝对不是为编写算法而设计的。你应该使用一个通用的编程语言,如C、C++、java、python,或者[插入你喜欢的通用语言这里]。 这并不是说你不能使用bash或者其他的算法——它是图灵完全的AFAIK——但是你真的不想。这将是一个巨大的痛苦,你不会学到很多你需要的技能(比如在通用

目前,我已将学习Unix/Shell脚本和阅读CLR Algo书籍列为最重要的优先事项。我在考虑是否可以使用shell脚本解决CLR中提到的算法问题。请注意,我是Unix/Shell脚本的新手

不,不是。Shell脚本绝对不是为编写算法而设计的。你应该使用一个通用的编程语言,如C、C++、java、python,或者[插入你喜欢的通用语言这里]。 这并不是说你不能使用bash或者其他的算法——它是图灵完全的AFAIK——但是你真的不想。这将是一个巨大的痛苦,你不会学到很多你需要的技能(比如在通用编程语言或风格中建模算法),你的解决方案将是神秘的。帮自己一个忙,用点别的。Shell脚本用于自动化任务,而不是解决算法

此外,大多数shell脚本语言(最著名的是bash)都是弱类型的,这a.)会影响性能,b.)会使程序更难推理。对于算法来说,动态类型是可以的,弱类型就不那么多了。不管怎样,表现都将是糟糕透顶的


如果您试图学习shell脚本和算法,您仍然可以同时学习。编写脚本来编译和测试您的程序,并用通用语言编写程序。

像Bash这样的shell功能非常强大,但我认为您会发现它们对数组的支持有限,对哈希表的支持不足,以及其他限制,使得实现除非常基本的算法之外的任何东西都变得单调乏味。Python或Perl将是一种更好的通用脚本语言


(稍后添加)由于了解到Bash4具有关联数组,我想补充一点,即可以使用shell脚本实现一些算法。它不会很快,也不会很优雅,会像地狱一样乏味,并且在应用上受到限制;但是,如果你想在学习实现算法的同时被迫学习复杂的shell,也就是说,纯粹作为一种心理练习,这对你来说可能是一件好事。

一点也不。当您需要一点停止来执行所有与UNIX/Linux系统相关的活动时,Shell脚本非常有用。你可以选择C/C++、Python、Java。

大学通常会选择以下选项之一(不是完整的列表,只是听说过的):

  • C
  • C++
  • 爪哇
  • C#
  • 蟒蛇
  • Matlab
  • 计划
你应该根据需要选择一种语言(学习编程不是一种需要,你这样做是为了有所成就)。一些示例(不是完整的列表):

  • 您对unix-linux系统级编程感兴趣:C,C++
  • 你对成为一名软件工程师感兴趣:Java、C#(可能是C++)
  • 您对web编程感兴趣:PHP(可能是Python)
  • 你对数学/统计编程、线性代数等感兴趣:Matlab

等等。首先:确定你的编程目标,然后在网上搜索它,看看人们在使用什么,然后了解它

bash确实有哈希表(通过关联数组),但使用它是一件痛苦的事。我不知道,谢谢Rafe。虽然我知道数字数组的存在,但我也从未实际使用过它们。Bash 4中提供了关联数组,但以前没有。