我目前使用PHP和Ruby on Rails作为Web开发人员.我的问题是为什么我需要知道算法和数据结构?我是否需要先学习C,C++或Java?了解算法和数据结构有哪些实际好处?外行人的术语中的算法和数据结构是什么?(你可以告诉我,我还没有完成CS课程.)
请提供尽可能多的信息,并提前感谢您;-)
我只是想知道字节序的历史是什么?我原本以为二进制数据存储在最低级别的方式很早就会成为标准,但很明显它没有.为什么?
我对此很陌生,所以如果问题没有意义,我会提前道歉.
如果我是正确的,c#中的int是4个字节.如果我有声明:
int x;
Run Code Online (Sandbox Code Playgroud)
我认为这占用了4个字节的内存.如果每个存储器地址空间是1个字节,那么这将占用四个地址槽?如果是这样,x如何映射到四个地址位置?
我必须在不同的地方在我的代码中生成同一对象的三个实例.
//This puts ship in new location.
spaceShipLocation location = new PhyiscsEngine();
Run Code Online (Sandbox Code Playgroud)
在代码中重复这3次是否被认为是不好的风格,还是应该将它包装在方法中?
(我的直觉说不).
ps这是介绍计算机科学课程.
如果它们包含相同的元素集但可能具有不同的结构,则认为两棵树是相同的.例如4,3,5和5,4,3
如何检查两棵树是否相同?
我能想到的一种方法是使用散列.对于第一个树中的每个元素,相应的计数递增.对于第二个树中的每个元素,计数递减.最后,哈希是空的,我们确信树是相同的.时间复杂度:O(N)空间复杂度:O(N)
但是,这种方法没有利用树是BST还是简单的BINARY TREE.
方法2:对数组中的两棵树进行遍历遍历.我们有两个具有排序数据的数组.进行线性搜索以检查阵列是否相同.时间复杂度:O(N)空间复杂度:O(N)
但是,我想知道有没有更好的解决方案?
我一直在阅读一篇关于密码学的文章,我自己也想到"32位计算机如何实现512位值,甚至64位值的操作?"
有人能指出我正确的方向吗?也许我不知道如何恰当地表达我想知道的内容,但谷歌搜索对于解决这个问题并不是很有帮助.
谢谢!
从1周开始,我发现了一个名为"Adaptive Radix Tree"的感兴趣话题,我发现它是用于在现代硬件架构中专门索引内存的非常有用的技术.
实际上我无法理解第4页中的一点,称为Node48.
我附上了我的意思. http://s30.postimg.org/nff1am2r5/xadaptive_radix.png
这也是本文的主页:http: //www-db.in.tum.de/~leis/papers/ART.pdf
那么比我更聪明的人能为我解释一下,我会非常高兴.谢谢.
关于FORTRAN编程的用户说明,第1-2章(FORTRAN和C的比较),说:
Fortran 90支持C(列独立代码,指针,动态内存分配等)和C++(运算符重载,原始对象)的有用功能.
术语"列独立代码"是什么意思?
给定数组A,检查A [i] = i是否存在任何i.
我应该比线性时间更快地解决这个问题,这对我来说似乎是不可能的.我想出的解决方案是首先在n*log(n)时间内对数组进行排序,然后您可以轻松地检查比线性时间更快的数据.但是,由于数组未分类,我看不到"有效"的解决方案?
我学到了一个地址,两个地址和三个地址指令,但是现在我想知道x86使用什么样的地址指令?