javascript冒泡排序,JavaScript冒泡排序课程设计所遇到的问题

关于javascript冒泡排序的一个疑问

没有什么区别。

创新互联是一家专注于网站设计制作、成都网站制作与策划设计,方正网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:方正等地区。方正做网站价格咨询:18980820575

作者多用了两个可以不用的变量而已(可能为了更直观,可能是作者忘记了可以写更少的代码)。

正如我们可能会写:

var s = get**();

alert(s);

可以直接写成这样:

alert(get**());

你说是不是。

没有中间变量的JavaScript冒泡排序法?

在进行位置交换的时候使用以下模式,就可以实现不需要中间变量:

a[i] = a[i] + a[j];

a[j] = a[i] - a[j];

a[i] = a[i] - a[j];

举个栗子:

比如a[i]是8,a[j]是9,根据上面步骤有:

a[i] = a[i] + a[j]=8+9=17;

a[j] = a[i] - a[j]=17-9=8;

a[i] = a[i] - a[j]=17-8=9;

因此最终实现了无需中间变量即可交换两者的值。

JavaScript如何以封装的方式实现冒泡排序

!DOCTYPE html

html

body

/body

script type="text/javascript"

function bubbleSort (arr) {

for (var i = 0; i  arr.length-1; i++) {

for (var j = 0; j  arr.length-1-i; j++) {

if (arr[j]  arr[j+1]) {

var temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

};

};

return arr;

}

var testArr = new Array(3,5,4,1,6);

var sortArr = bubbleSort(testArr);

alert(sortArr);

/script

/html

可直接保存为html文件打开测试。

没有中间变量的javascript冒泡排序

// 冒泡排序必须创建一个变量吗? 答案: NO NO NO! 不信请看下方↓↓↓

// 知识重点:连续对 2 个变量使用 3 次异或运算,可以交换两者的值!

let a = 10,

b = 99;

a ^= b;

b ^= a;

a ^= b;

console.log(a) // 99

console.log(b) // 10

------------------------------------------------------------------------------

示例: 冒泡排序

let numList = [2,6,4,1,9,8,10,7,5,3],

numListLen = numList.length;

for(let i = 0; i  numListLen; i++){

for(let j = 0; j  numListLen; j++){

if(numList[j]  numList[j+1]){

numList[j] ^= numList[j+1];

numList[j+1] ^= numList[j];

numList[j] ^= numList[j+1];

}

}

}

console.log(numList); //  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


当前标题:javascript冒泡排序,JavaScript冒泡排序课程设计所遇到的问题
网站链接:http://ybzwz.com/article/dsdhcpc.html