记录自己遇到问题以及解决,希望能帮到你。
数组声明以及代码如下:
注:本次是对数组对象进行排序,排位依据是数组对象的第一位
忽略打印代码
输出结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
可见,对于大数来说,升序排序异常,而对于小数来说,升序排序正常。
分析原因:
因为compare返回的是int类型,而int最小值减去int最大值会导致越界,因此要更改返回值
修改后代码:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
修改后结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
问题解决了。
总结与建议:
不要再使用return x1 - x2 的返回形式 ,而是使用 x1 < x2 ? -1 : 1 的形式,因为前者可能越界。