冒泡排序

冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序最好的时间复杂度为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;
}
浙公网安备 33010602011771号