shell 脚本
摘要:$@ 可以获得可变参数就, ftp 连接命令for i in $@ ; do echo $idoneftp -i -v $address <<KKKuser 1 1 binKKKseparator='=' 2 line=$(awk '/$separator/' file) value=$(awk -F $separator { print $2} $line)
阅读全文
如何定位问题?
摘要:gdb 方便但是不及日记打印用一个函数把所有的变量打印出来,可以替代gdb把报文打印出来 write /dev/pts0/tty打印等级,方便筛选有用信息。出错的地方都加日记,加错误码。几个关联日记交叉记,增强可靠性,交叉日记其实很有用的,可以筛选出关键信息比较直观。
阅读全文
算法导论的快排(未验证) 深入理解
摘要:为什么快速排序能更快呢?如果每次参考值都是再子数组取得最大最小值,那么跟选择排序有什么差别?极端的情形有所有的数据都是一样的如果每次都取得是中间值,最后都分成两个元素的数组在有序的情况下,快排性能很差,但是插入排序在数据基本排好的情况下是非常快的。所以我们在用快排之后,等待基本有序就可以用插入排序。同时递归的时候,使用太多的调用栈会消费太多资源,是的程序运行得很慢,我们《算法导论》使用一种编译程序的优化方法来处理,尾递归。但是我们手动写的尾递归实际效率是差不多的。算法导论快速排序的主要不同点在与partition,分成三个区间,B有可能不存在,而这个用两个指针,一个A指向小于中间值的子数组里,
阅读全文
软件的意义
摘要:软件就是减轻人重复性工作,跟当年的蒸汽机年代的机械一样。我们把子任务抽象为一个模型,纳入到一个通用性很强的业务流程里,就好像搭积木,加上一个零部件,也可以很方便的拆卸。接头都是统一的,不会为了某个任务改接口。没有说USB接口还要五花八样的。如果我们都是用 if else if else 地加入每个任务,做特殊处理,只能说流程通用性做的不好,或者不了解架构。---豪总,我说的对吗?
阅读全文
线性时间选择
摘要:RandomizedSelect 可以在 O(n) 平均时间内找到第K个小元素,在最坏的情况下可以生产出 OMG (N * N )时间内找到。但更是该算法的平均性能很好。因为每次都查找到最大最小值,那么分而治之的功能就失效了,就沦落为了直接选择了。 堆排序也可以在O(n) = O (n + k * log n) 时间内找出第K小元素,当K <= n/logn ,但是在限定条件下,O(n) 可以在最坏的情况下出现,也可以是O(n)。
阅读全文