冒泡排序法之优化比较

Posted 刘义博_网站程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序法之优化比较相关的知识,希望对你有一定的参考价值。


                        // 第一种方法

// var arr=[23,1,41,33,67,99,50];

// var outCount=0;

// var inCount=0;

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

// {

// for(var j=0;j<arr.length-1;j++)

// {

// //两两相邻元素作比较

// //简单的说,先是第一个元素和第二个元素作比较,

// //抽象的说,一直遵循当前元素和下一个元素作比较,

// //能表示当前元素arr[j],下一个元素当然是arr[j+1]

//

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

// {

// //交换位置

// var maxBack=arr[j];

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

// arr[j+1]=maxBack;

// }

// inCount++;

// }

// outCount++;

// }

// document.write(arr);

// document.write('<br>外循环:'+outCount+'次');

// document.write('<br>内循环:'+inCount+'次');

                        //第二种方法

// var arr=[23,1,41,33,67,99,50];

// var outCount=0;

// var inCount=0;

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

// {

// for(var j=0;j<arr.length-1;j++)

// {

// //两两相邻元素作比较

// //简单的说,先是第一个元素和第二个元素作比较,

// //抽象的说,一直遵循当前元素和下一个元素作比较,

// //能表示当前元素arr[j],下一个元素当然是arr[j+1]

//

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

// {

// //交换位置

// var maxBack=arr[j];

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

// arr[j+1]=maxBack;

// }

// inCount++;

// }

// outCount++;

// }

// document.write(arr);

// document.write('<br>外循环:'+outCount+'次');

// document.write('<br>内循环:'+inCount+'次');

//第三种方法

var arr=[23,1,41,33,67,99,50];

var outCount=0;

var inCount=0;

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

{

var issort=true;//假设排序ok

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

{

//之所以判断比较交换,是因为没有排好序

//两两相邻元素作比较

//简单的说,先是第一个元素和第二个元素作比较,

//抽象的说,一直遵循当前元素和下一个元素作比较,

//能表示当前元素arr[j],下一个元素当然是arr[j+1]

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

{

issort=false;

//交换位置

var maxBack=arr[j];

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

arr[j+1]=maxBack;

}

inCount++;

}

if(issort)

{

break;

}

outCount++;

}

document.write(arr);

document.write('<br>外循环:'+outCount+'次');

document.write('<br>内循环:'+inCount+'次');


以上是关于冒泡排序法之优化比较的主要内容,如果未能解决你的问题,请参考以下文章

C#冒泡排序法及优化

冒泡排序法的优化

交换排序------冒泡法 及其优化

冒泡排序法

算法大神之路----排序(冒泡排序法)

冒泡排序法三部曲终极版の最优的冒泡排序算法