ARTS-WEEK7

发布于: 20 小时前
ARTS-WEEK7

Algorithm

上周学习了下递归,这周学习递归在排序算法中的使用-归并排序

思路:

将数组拆分成两半,分别对这两半进行排序,然后将这排序后的两半再进行排序得到最终结果

将数组拆分两半的过程可以使用递归编程方式,直到无法再进行拆分为止

def merge(array: List, start: int, middle: int, end: int):
len = end - start + 1
new_array = [0] * len # 先生成一个对应大小的空列表,方便后面直接通过索引赋值操作
i = start
j = middle + 1 # 位置不能搞错
m = 0
# print("old_array %s"%(array))
while (i < middle + 1) and (j < end + 1):
if (array[i] <= array[j]):
new_array[m] = array[i]
i += 1
else:
new_array[m] = array[j]
j += 1
m += 1
while (i < middle + 1):
new_array[m] = array[i]
i += 1
m += 1
while (j < end + 1):
new_array[m] = array[j]
j += 1
m += 1
# print("new_array %s"%(new_array))
for i in range(len):
array[start + i] = new_array[i] #array数组的起始地址需要加上start
def merge_sort(array: List, start: int, end: int):
if start >= end:
return
middle = (start + end) // 2
merge_sort(array, start, middle)
merge_sort(array, middle+1, end)
# print("start :%s, middle : %s, end %s"%(start, middle, end))
merge(array, start, middle, end)

Review

https://geshan.com.np/blog/2019/03/follow-these-logging-best-practices-to-get-the-most-out-of-application-level-logging-slides/

commendable:值得赞美的、优秀的

torch:手电筒

exploit:利用

underrated:低估的

instrumental:有帮助的、工具性

profile:概述、简介、配置文件

optimally:理想的

inadequate:不够的

mandatory:强制性的

hamper:妨碍

tried:经过试验的,可靠的

感觉好多单词不认识.. 尴尬 = =

记录几点:

1、日志不要记录太多,也不要太少。

2、日志严重等级明确

3、单条日志信息不要过长,不建议超过255个字符

4、不要影响正常业务流程,可以使用异步、队列等方式

Tip

1、一直间隔执行某个命令

while True; do netstat -an; sleep 5; done;

2、指定某个命令执行多少时间后停止

有两种方法:

a)

timeout 3s ping www.baidu.com

此方法通过 timeout 命令来实现,示例指定 3s,可指定 m(分钟)、h(小时)、d(天)单位。

如果系统不支持 timeout 命令,可换下面方法。

b)

ping www.baidu.com & sleep 3s; kill $!

kill $! 命令用于 kill 掉最近执行的后台作业。

Share

嵌入式开发调试都是基于硬件设备,改动了代码想要验证下,可能就是打包重新升级设备,不顺利的话就得继续加打印改代码,再重新打包升级,这样的时间消耗真的是太大了,组内推TDD测试也比较久了,但使用的人感觉很少。

如果能提前写好各接口的自测用例,改动一点代码,就基于本地跑一下对应接口用例,就能一下发现问题,真的可以节省很多时间。后面得有意识的养成编写自测用例的习惯。

发布于: 20 小时前 阅读数: 8
用户头像

一周思进

关注

每周学习总结,相信可以走的更远 2017.12.12 加入

嵌入式开发工程师 个人公众号:一周思进

评论

发布
暂无评论
ARTS-WEEK7