python是做统计数据的好工具,在学习程序设计时,我们发现算法是一个难点,我们从’简单模拟’, ‘查找元素’, ‘图形输出’, ‘进制转换’, ‘字符串处理’,‘排序’,‘散列’,‘贪心’,‘二分’,‘two pointers’,‘其他’,‘数学’,‘链表’,几个角度分析算法的考试和训练策略,下一篇文章,分析数据结构的算法的考试和训练策略,如果你正在准备PAT甲乙级算法的考试和训练,会大有帮助,祝早日金榜题名。
首先用python输入matplotlib和numpy:
import matplotlib.pyplot as plt
import numpy as np
然后解决 plt 中文显示的问题:
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
1
2
我们命名alg为算法名,yiji是乙级的数据列表,jiaji是甲级的数据列表
alg = ('简单模拟', '查找元素', '图形输出', '进制转换', '字符串处理','排序','散列','贪心','二分','two pointers','其他','数学','链表')
yiji = [9,4,2,2,8,1,8,2,1,2,2,8,1]
jiaji = [5,3,1,3,7,10,5,5,4,4,2,12,4]
生成乙级的调查结果:
plt.bar(alg, yiji)
plt.title('乙级算法的调查结果')
plt.show()
``
我们发现看小图时,汉字挤到了一起去,需要美工设计,变成横向条形图!
在绘制甲级图时,从新设计:
plt.barh(alg, jiaji)
plt.title('甲级算法的调查结果')
plt.show()
![甲级统计图.png](https://ucc.alicdn.com/pic/developer-ecology/2823a72420384cdcaae6cf4d4211a188.png)
把两个图合并
bar_width = 0.3 # 条形宽度
index_male = np.arange(len(alg)) # 乙级条形图的横坐标
index_female = index_male + bar_width # 甲级条形图的横坐标
使用两次 bar 函数画出两组条形图
plt.bar(index_male, height=yiji, width=bar_width, color='b', label='乙级')
plt.bar(index_female, height=jiaji, width=bar_width, color='g', label='甲级')
plt.legend() # 显示图例
plt.xticks(index_male + bar_width/2, alg) # 让横坐标轴刻度显示 alg , index_male + bar_width/2 为横坐标轴刻度的位置
plt.ylabel('题目规模') # 纵坐标轴标题
plt.title('算法的调查结果') # 图形标题
plt.show()
我们可以得出结论,乙级的训练重点在于算法和散列,甲级的训练重点在于数学和排序,下期做数据结构的考试和训练策略,喜欢的话就点赞关注一下吧。