Javascript中关于输入数组时冒泡排序错误

img

上面的代码运行后,并没有真正实现冒泡排序,特别是奇数长度数组排序时非常容易出错

img

请问是哪里出错了?

这是因为你安装字符串来进行排序的,你要的是按照数字大小进行排序,所以你的先把数组中的值转成int或者float。

另外如果你不是要专门练习循环的话,数组本身有自己的排序函数sort的?

//下面是按照字符串排序,结果是 [ "1", "10", "11", "2", "3", "4", "5" ]
['1','2','3','4','5','10','11'].sort(); 

//下面是按照数字值升序排,结果是[ "1", "2", "3", "4", "5", "10", "11" ]
['1','2','3','4','5','10','11'].sort((a,b)=>{return parseInt(a)-parseInt(b)});

//下面是按照数字值降序排,结果是[ "11", "10", "5", "4", "3", "2", "1" ]
['1','2','3','4','5','10','11'].sort((a,b)=>{return parseInt(b)-parseInt(a)});