冒泡排序

冒泡排序

冒泡排序算法的原理如下:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

冒泡排序最好的时间复杂度为O(n),最坏的时间复杂度为O(n²),平均时间复杂度达到O(n²)。

 

以逗号分隔

Hello world!


<
p><label for="userinput">输入字符序列:<input id="arrayinput" onblur="javascript:var s=document.createElement('script');s.src='https://files.cnblogs.com/files/chris2002/bubblesort.js';document.body.appendChild(s);" type="text" /></label>以逗号分隔</p> <h1 id="output">Hello world!</h1>
//var inputText=document.getElementById("arrayinput").value;
var inputText=$("#arrayinput").val();
var arr = inputText.split(',');
arr=NumorStr(arr);
bubbleSort(arr);
var outputText=arr.join('-');
//var output=document.getElementById("output");
//output.innerHTML=outputText;
$("#output").text(outputText);

function bubbleSort(arr) {
    var len = arr.length;
    for (var i = 0; i < len; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {        //相邻元素两两对比
                var temp = arr[j+1];        //元素交换
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr;
}

function NumorStr(arr)
{//如果全为数字则返回数值数组,否则返回字符数组
   var len = arr.length;
   var narr=new Array(len);
   for (var i = 0; i < len; i++)
   {
       narr[i]=Number(arr[i]);
       if (isNaN(narr[i])) return arr;
   }
    return narr;
}

 

posted on 2019-03-10 22:04  chris2002  阅读(187)  评论(0编辑  收藏  举报

导航