一.冒泡排序的思想是什么?
一次比较两个元素,如果他们顺序不对,那就交换这两个元素的位置。从第一个元素开始比较,假如数组有n个元素,那就需要n-1(arr.length-1)趟。每趟交换次数为arr.length-i-1。
二.怎么用代码来实现?
1.外层for循环。循环趟数arr.length-1。
2.里层for循环。需要比较的数组长度为arr.length-i-1。
3.交换两个变量。(需要用到临时变量存储第一个数的值)
代码
冒泡排序:从小到大排序(前面的数大于后面的数,则交换两个变量)
var arr=[3,1,2,5,4];
for(var i=0;i<arr.length-1;i++)
{ for(var j=0;j<arr.length-i-1;j++)
{if(arr[j]>arr[j+1])
{ var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;}
}
}
console.log(arr);
冒泡排序:从大到小排序(前面的数小于后面的数,则交换两个变量)
var arr=[3,1,2,5,4];
for(var i=0;i<arr.length-1;i++)
{ for(var j=0;j<arr.length-i-1;j++)
{if(arr[j]<arr[j+1])
{ var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;}
}
}
console.log(arr);