数据结构、算法、计算机原理是编程和实践的根基,看似枯燥和基础,却具有最长久的生命力。
作为人类高质量程序员,写代码精髓就是领略数学之美。
算法:
.......
数据结构:
.......
作为程序员的你,认为编程必须掌握哪些算法?快来分享你的见解吧!
● 围绕算法,发表见解 50 字以上(需原创,禁止转载)
回答赞同数 TOP10 的用户将有机会获得精美定制小礼品一份
腾讯云开发者社区小助手 9 月 10 日在获奖评论下通知答主,奖品将于30日内发放
更多精彩问答与定制好礼,尽请关注 【云+有奖问答专题】 \( ̄▽ ̄)/
确实挺看个人的,但是我觉得,最少基本的数据结构需要知道吧。比如:红黑树、深度优先还是广度优先。在日常使用时候,一些语言封装的算法需要了解,比如:Java的sort()排序算法。
说到排序算法,这个我觉得是一定要了解的,使用频率和算法优化也最为明显。还是java的sort()方法。平时使用,可能就是一个数组或链表(如:Arraylist),调用sort()方法:
int[] list={9,2,3,1,5,6,9,8};
// Java Sort方法
Arrays.sort(list);
for (int temp:list) {
System.out.print(temp+" ");
或:
List <Integer> list=new ArrayList<>();
list.add(3);
list.add(2);
list.add(5);
// Java Sort方法
list.sort(Comparator.naturalOrder());
for (int temp:list) {
System.out.print(temp+" ");
}
但是,真的每个人都要看Arrays的sort排序底层么?这个算法,是使用快排或双轴快速排序等多种排序方法,以int类型排序为例,使用的是双轴快速排序(DualPivotQuicksort):
DualPivotQuicksort我认为已经是非常好的排序算法了,能看懂的话,也算入门的高质量程序员了吧╮( ̄▽ ̄"")╭。算法的解析,可以参考:https://rerun.me:
总之,我认为程序员,必须掌握的算法一定要掌握最基本的数据结构,其次是能理解许多使用广泛的排序算法(比如:java Arrays sort)。
以上,纯属个人观点嗷(*≧ω≦)