- 积分
- 256
- 最后登录
- 2024-4-19
- 精华
- 0
- 阅读权限
- 30
- 主题
- 38
- UID
- 3569495
- 帖子
- 565
- PB币
- 4068
- 威望
- 5
- 贡献
- 0
- 技术
- 2
- 活跃
- 2263
- UID
- 3569495
- 帖子
- 565
- PB币
- 4068
- 贡献
- 0
- 技术
- 2
- 活跃
- 2263
|
用a += b;b = a - b;a -= b;交换结果不对,换成中间量交换结果又正确了,是哪里出了问题.
<!DOCTYPE html>
<meta charset="UTF-8">
排序bug
<script>
function randomArr(length,range){
var arr = new Array(length);
for (var i = 0; i < arr.length; i++) {
arr[i] = parseInt(Math.random() * range + 1);
}
return arr;
}
function sortArr(arr){
for(var i = 0;i < arr.length;i++){
var max = 0;
for(var j = 0;j < arr.length-i;j++){
if(arr[j]>arr[max]){
max = j;
}
}
/* var temp = arr[max];
arr[max] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp; */
arr[max] += arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = arr[max] - arr[arr.length - 1 - i];
arr[max] -= arr[arr.length - 1 - i];
}
return arr;
}
var numArray = randomArr(10,1000);
document.writeln(numArray + "这是原来的数组<br />");
sortArr(numArray);
document.writeln(numArray + "这是升序的数组<br />");
</script>
|
|