Re: [请益] 资料结构重要程度

楼主: iceberg (((You only live once)))   2019-10-26 08:28:10
听说成大将来有一种新的考试入学方式,
考生全部关起来,写一整天code?
很好啊,没coding能力就先淘汰,造福业界,
最近我部门来了一个新人,
问我为什么要用linked list?
还要memory alloc/free很麻烦,
用array很方便不是吗?
嗯...好喔。
资结是基础内功,
一个懂资结、算法、OS写出来的code
跟一个array从头用到尾的code
以效能、空间、clean code的等级落差,
在同公司的薪水价差大概是
“完全没差”
所以不用太在意,
只要学长姐考古题背好,面试上就好(咦?)
※ 引述《a23395080 (路过看看)》之铭言:
: 资料结构这门课到底重不重要啊
: 如果非资工系的工学院学生没修DS 但是会写C
: 对未来找工程师职缺(非软件工程师)影响大吗???
作者: hongsiangfu   2019-10-26 08:53:00
非本科,借问alloc/free太常使用造成的破碎该如何处理,平台是32bit的mcu(非arm或dsp)
作者: HSUFIT (FireDance)   2019-10-26 09:08:00
自己弄一块memory pool来处理特定用途(大小)的allocation/free
作者: alongalone (沿着孤单的路)   2019-10-26 09:25:00
认真来说,他的说法并没有错.
作者: DFM (wen)   2019-10-26 09:45:00
现在硬件能力强资源也很足够,大部分的应用还真的看不出来差异。只要人的感受不觉得慢就好。
作者: ko27tye (好滋好滋)   2019-10-26 09:48:00
这篇才是真的,有四大背背考古题随便都有工作
作者: iiiii (I take 5)   2019-10-26 09:50:00
wp sp解决一楼问题
作者: whoknow0923 (whoknow)   2019-10-26 09:53:00
看用途吧,杀鸡还需要用牛刀吗
作者: k268185 (k268185)   2019-10-26 09:55:00
推一个 只要performance没有明显差异 能简单就简单
作者: alumi7 (none)   2019-10-26 10:03:00
去看slab的code
作者: Jyery (文帝)   2019-10-26 10:34:00
写太难后面接手的也很难维护
作者: yamakazi (大安吴彦祖)   2019-10-26 10:35:00
这问题我有想过 list好处是能够依照需求随时增加减少 array在程式执行时比较难随时增减 array好处则是储存空间比list小 但坏处时是没办法做二元搜寻树至于一楼的问题 我记得那通常是OS处理的问题 mcu似乎无解array的大小要在编译前决定一楼的问题 看看能不能自己改或做做一个RTOS光是搜寻树的问题 array应该就惨败C++里面用到map的话 map本身也是红黑树如果只是控制简单mcu 的确用不到list 但如果你是写大型资料网站后端就要会不过很多人只会写C来操作mcu 写个forwhileifelse 就觉得自己会写C++ 会资结算法问写韧体的人怎么样用人名快速查找电话 他只会用二分搜寻法不会用红黑树map但有看过DS ALGO 的人就知道怎么做 差别大概是在这里
作者: chandlerkc (kcyeh)   2019-10-26 10:56:00
有些情况array 有效率得多
作者: NCTU5566 (交大彭于晏)   2019-10-26 10:57:00
推yamakazi大学DS和算法开始会用时间复杂度和空间复杂度来分析问题^就是开始会用我以前在电机系学的C语言顶多教到linkedlist和array差异当然也会提到array存取方便linkedlist空间使用等特性但没提到BigO的概念 BigO的概念是真的修资工DS Algo才会然后很多时候为了实现某个算法需要用哪个DS辅助因此两个很常绑在一起上,但也有独立只教algo的课独立教algo的可能就会教比较概念的greedy divide&concurdynamic programming但要怎样写成扣很多时候要某些DS帮
作者: badyy (nick)   2019-10-26 11:06:00
制造业或卖硬件还是可学起来然后照环境使用!有人想倒著用就入境随俗倒著用帮他做大一点开山立派 XD
作者: NCTU5566 (交大彭于晏)   2019-10-26 11:07:00
一点浅见觉得可以修DS和algo当作评估自己想不想走CS有错再请前辈们打脸修正QQ然后写韧体真的相对用比较少DS和Algo我同学在IC厂写韧体他真的不会tree graph这些东西他最多就会用array linkedlist和stack queue
作者: odanaga (PixiyON)   2019-10-26 11:14:00
觉得不懂os问题比较大
作者: fallinlove15   2019-10-26 11:18:00
一堆有现成解决内存管控的工具可以用 为什么不学一下呢
作者: JasperChang (PeterChou)   2019-10-26 11:34:00
红黑树麻烦 资源有限不如用 hash table
作者: Litfal (Litfal)   2019-10-26 11:52:00
linkedlist我还算熟,但老实说真的不常用
作者: qwerasdf6102 (eat_centrum)   2019-10-26 12:10:00
额 hash虽然查找快 但所占的空间更大吧
作者: YcL5566 (哈哈哈)   2019-10-26 12:24:00
能用mem换来的都是小事
作者: j0958322080 (Tidus)   2019-10-26 12:30:00
不是写IC的内存都不重要
作者: IKnowWhy (知道为什么)   2019-10-26 12:32:00
如果真的要循序处理array比较快好吗...
作者: flysonics (飞音)   2019-10-26 12:33:00
写FW的 内存常常就那么丁点大 没多少机会让你用复杂的东西 除非就像前面推文讲的一样你要刻类似RTOS之类的
作者: j0958322080 (Tidus)   2019-10-26 12:37:00
不一定耶,多维阵列速度搞不好比指标慢
作者: matyih (mat)   2019-10-26 12:44:00
现在很多系统是engineer time比computer time贵简单好维护的code比完全优化的更实际
作者: lunashining (asdfgh)   2019-10-26 12:47:00
推除非IC内存, 硬件厂一些老鸟觉得会C很厉害完全不知道在秋三洨...
作者: flysonics (飞音)   2019-10-26 12:51:00
现在很少这种老人了吧 都嘛大码农时代惹
作者: Litfal (Litfal)   2019-10-26 13:15:00
写dsp的表示qq,连alloc都没得用
作者: cjo4zo2k7al (就只是只)   2019-10-26 13:38:00
结论正确给推
作者: RedDracula (喔.)   2019-10-26 14:37:00
看用途 END
作者: bizer (bizer)   2019-10-26 14:59:00
说实在,没有大量数据处理,哪有需要那些资料结构,整天call函数库的就更不用说了
作者: soooooooo   2019-10-26 15:30:00
结论正确
作者: Kuba4ma (哦吼)   2019-10-26 15:58:00
结论正确xd
作者: hongsiangfu   2019-10-26 15:58:00
感谢各位大大无私分享
作者: rodion (r-kan/reminder)   2019-10-26 16:25:00
张飞比岳飞 array如何O(1) delete?一堆瞎扯结论正确的 就不要开玩笑被别人当真的 会害到人
作者: gbs0856 (Water_Legend)   2019-10-26 18:14:00
看推文,就知道台湾业界为何不重视软工,出不了杀手级应用服务,只配做代工
作者: aasssdddd (路人庚)   2019-10-26 20:35:00
写好了还比别人用其他方法解的慢…
作者: hanshsu (小肉呆)   2019-10-26 20:50:00
driver 里面很多 listhead
作者: snoopy790428 (snoopy)   2019-10-27 00:01:00
面试就是头过身就过
作者: vm3tl6vup (我不是NONO..)   2019-10-27 02:44:00
一楼,去搜寻reap allocator
作者: veru (ccc)   2019-10-27 13:11:00
会用array 就表示没有要delete了 为什么要care 如何O(1)Delete? 当function的local variable 就够了举个例 做counting sorting 你会用array 当bucket还是list?
作者: jason710068 (综合水果汁z)   2019-11-03 13:26:00
假设是写 c++的话,当然用stl啊,谁在那边跟你造轮子

Links booklink

Contact Us: admin [ a t ] ucptt.com