06-冒泡排序法精讲

冒泡排序算法原理:

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。最后的元素会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

假设有数组: [7,6,9,5,3]; 对于N个元素数组需要进行 N-1次比较

第一轮

用索引为0的也就是7与7索引为1的6比,如果大于索引为1的交换他们两个位置

交换后: [6,7,9,5,3];

继续用索引为1的7与索引为2的9比较,不大于9不动。

[6,7,9,5,3];

继续用索引为2的9与索引为3的5比较,大于5交换位置

[6,7,5,9,3];

继续用索引为3的9与索引为4的3比较然后交换位置

[6,7,5,3,9];

一轮下来后最后一个就是最大的定下了,下一轮就不需要比较最后一个。

第二轮

从索引为0的与索引为1的比较比较结果不变

[6,7,5,3,9];

用索引为1的与索引为2的比较结果交换

[6,5,7,3,9];

用索引为2的与索引为3的比较结果交换

[6,5,3,7,9];

二轮下来后,确定两个7与9,然后进行第三轮

第三轮

从索引为0的与索引为1的比较结果交换

[5,6,3,7,9];

从索引为1的与索引为2的比较结果交换

[5,3,6,7,9];

第三轮比较后确定了最后三个。

第四轮:

从索引为0的与索引为1的比较结果交换

[3,5,6,7,9];

比较完毕交换结束,排序完成。

二、冒泡排序法代码实现:

var arr = [6,7,9,5,3];

for(var i=1;i

document.writeln("------第 "+i+" 轮---------");

for(var j=0;j

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

t =  arr[j+1];

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

arr[j] = t;

}

document.writeln(arr);

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容