冒泡排序
![冒泡排序](https://img2018.cnblogs.com/blog/1011648/201903/1011648-20190313112322515-1285390163.gif)
冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序最好的时间复杂度为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; }