为什么 这样子不行?大神求解答
26行换成这样就对了,if(nums[i] < min),因为还有等于的情况。以下是排序的详细过程:
nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
min = max = nums[0] = 61;
i = 0,nums[0](61)<= max(61),else执行,min = nums[0] = 61;
i = 1,num[1](23) <= max(61),else执行,min = nums[1] = 23;
i = 2,nums[2](4) <= max(61),else执行,min = nums[2] = 4;
i = 3,nums[3](74) > max(61),else语句不执行,此时min = 4;
i = 4,nums[4](13) <= max(74),else执行,min = 13,此时程序就已经显现出错误。
i = 5,nums[5](148) > max(74),else语句不执行,min = 13;
i = 6,nums[6](20) <= max(148),else执行,min = 20;
所以你的代码运行结果是20.算最小值其实和最大值没有关系,与max进行比较,逻辑上说不通啊。