有10万个学生的成绩,成绩在0-100之间,对其排序,然后输出.请问用哪种排序算法的效率最高?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 10:02:58
![有10万个学生的成绩,成绩在0-100之间,对其排序,然后输出.请问用哪种排序算法的效率最高?](/uploads/image/z/13970190-30-0.jpg?t=%E6%9C%8910%E4%B8%87%E4%B8%AA%E5%AD%A6%E7%94%9F%E7%9A%84%E6%88%90%E7%BB%A9%2C%E6%88%90%E7%BB%A9%E5%9C%A80-100%E4%B9%8B%E9%97%B4%2C%E5%AF%B9%E5%85%B6%E6%8E%92%E5%BA%8F%2C%E7%84%B6%E5%90%8E%E8%BE%93%E5%87%BA.%E8%AF%B7%E9%97%AE%E7%94%A8%E5%93%AA%E7%A7%8D%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95%E7%9A%84%E6%95%88%E7%8E%87%E6%9C%80%E9%AB%98%3F)
有10万个学生的成绩,成绩在0-100之间,对其排序,然后输出.请问用哪种排序算法的效率最高?
有10万个学生的成绩,成绩在0-100之间,对其排序,然后输出.请问用哪种排序算法的效率最高?
有10万个学生的成绩,成绩在0-100之间,对其排序,然后输出.请问用哪种排序算法的效率最高?
一般来说,快速排序是万能的,时间复杂度O(nlogn)
但对于这题来说,由于要排序的元素范围在0-100之间,所以用【计数排序】可以在O(n)的复杂度完成排序
具体做法是,开一个数组,范围是0-100,即a[100],依次读取每一个元素i,将a[i]+1,可知每个元素出现了多少次,然后从0-100依次输出即可(这是从小到大,从大到小反过来就行了)!
不懂可问,满意请采纳谢谢!