最近学了哈夫曼树数据结构算法,通过哈夫曼树可以优化代码提高运行时间,有所感触特此记录。
根据分数评判等级:
正常思维:
if(grade<60)
printf("不及格\n");
else if(grade<70)
printf("及格\n");
else if(grade<80)
printf("中等\n");
else if(grade<90)
printf("良好\n");
else
printf("优秀\n");但如果记录全校1000个同学的成绩,甚至更多?
可以记录该校各个学生的各成绩占的比例,将分数分割成若干个,并计算各成绩在该成绩段上占的比例。显然用如下该逻辑结构更合理:
代码如下:
if(grade<80){
if(grade>70)
printf("中等\n"); else if(grade>60)
printf("及格\n"); else
printf("不及格\n");
}
else{
if(grade<90)
printf("良好\n");
else
printf("优秀\n");
}该代码先判断成绩所占比例最大的,在依次判断依次所占的比例。
通过wpl计算假设有100个学生,第2种方法比第1种方法运行速度快将近1/3。代码效率更高。
如果人数1万甚至更多,这将大大提高代码速度以及减少服务器的开销。