一.
这里对前面的选择排序操作进行了深化,之前讨论的选择排序是将0角标上的数据和后面角标的数据一个个进行对比,不断地调换数据的位置,直到0角标上的数据是整个数组中的最小值。由于调换的次数较多,现在引发一个疑问,能不能直接将0角标的数据和最小数据进行对换(前提是知道最小数据的角标是多少)。
之前的例子里,选择排序中,进行了三次比较调换数据,才使得角标0上的数据是最小的。现在要换个思路来解决相同的问题。
具体的操作是:先定义两个变量,为什么要定义两个变量?一个变量记录用于比较的元素num,一个变量记录角标值。
思考:通过视频讲解,这里是开辟了两个新的变量作为记录的地方,然后在这两个变量上进行操作,比较的过程中,不对数组进行任何操作。经过所有的比较后,两个变量记录的是最小值和最小值的角标。最后,直接将数组中的,0角标的数据和4角标的数据进行数据交换。这个思路相较于之前的解题来说,进行了一个前期的铺垫。其实,我觉着这个思路的过程中,操作也挺多的。增加了比较记录的次数,减少了交换的次数。那两个变量是存储在栈内存中的。
时间: 2024-11-06 03:37:26