首先假设有一个store了十个随机大小的数的数组,要求我们对其进行从小到大的排序,采用冒泡排序进行相邻元素两两比较。如果有10个元素进行冒泡排序,那么就需要执行9次两两比较。
进行排序时考虑极端情况,假设这十个数本来就是从小到大,那么进入store函数时依然会执行循环操作,导致效率降低,so,利用一个判断,如果能进入store函数的第二曾循环,则说明这十个数存在大小关系,则flag的值发生变化,不然flag值不变,再加个判断if flag的值不变,直接break跳出第一层循环。
还有一种情况,不利用排序的方法,个人认为属于排序的另一种思想,适用于知道存在这个数值的上限,例如描述的成绩这类题目。
进行排序的思想:原因-->因为我们知道了该数组内存储的上限,此时只需要求出用户输入时的最大值max,例如成绩这类题目的上限为100,当我们求出了数组内的最大值后,直接来个两层 循环,利用最大值不断去减去1-100的数,当有一个值与我们数组的值对应后,就输出,该值就是该数组内所存储的最大值了。
注:仅用于记录学习记录和用于巩固,还有可补充的点请指教!!