1.冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
如图演示:
代码:
//声明一个数组
var arr=[6,3,5,4,2,8];
function bubbleSort(arr){
//max为从左到右,两个数进行比较的次数(遍历数组,次数就是arr.length-1)
var max=arr.length-1;
for(var j=0;j<max;j++){
/*声明一个变量,作为标志位
我们想下这个情况,当原数组是,
arr = [1,2,4,3];
在经过第一轮冒泡排序之后,数组就变成了
arr = [1,2,3,4];
此时,数组已经排序完成了,但是按上面的代码来看,数组还会继续排序,所以我们
加一个标志位,如果某次循环完后,没有任何两数进行交换,就将标志位 设置为 true,表示排序完成,这样我们就可以减少不必要的排序,提高性能。*/
var done=true;
for(var i=0;j<max-j;i++){