我正在研究一段代码,遇到了“ i = -1
”,因此我无法弄清它在场景中的重要性。
代码的重点是将数组从最小到最大排序,并找出最大和最小数字之间的差。
public int bigDiff(int[] nums) {
int answer = 0;
for (int i = 0; i < nums.length - 1; i++){
if (nums[i] > nums[i + 1]){
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
i = -1;
}
}
return (nums[nums.length - 1] - nums[0]);
}
提前致谢!
这是冒泡排序的实现。i=-1;
如果发现排序不正确,则将循环重置为开始。它是-1而不是0,因为i++
在for循环的末尾,对于数组的开头,它将迭代返回0。如果不这样做,它只会通过一次,并且可能会错过顺序错误的事物。在这里阅读有关内容:http : //www.geeksforgeeks.org/bubble-sort/
冒泡排序看起来像这样(在此代码中):
第一遍:[0] [3] [3] [1]第二个3和1被交换,迭代器回到起点
第二遍:[0] [3] [1] [3]前3和1被交换
第三遍:[0] [1] [3] [3]不需要做任何事情
如果只通过了一次,这是行不通的。因此,它将重置自身,以便可以再次通过。
(而且我应该注意,如评论中所述,气泡排序首先是效率低下的,并且由于此实现在每次遇到问题时都会对其进行重置,因此效率甚至更低。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句