您的位置:首页 > Web前端 > JavaScript

js之三类(冒泡,插值,二分)排序算法

2016-05-25 15:48 375 查看
1.冒泡排序:

代码:

<script>

var arr=[12,23,56,34,89,95];

window.onload=function(){
var len=arr.length;
for( var i=0;i<len;i++){
for( var j=i+1;j<len;j++){
if(arr[i]>arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for( var i=0;i<len;i++){
document.write(arr[i]);
document.write(";");

}
}

</script>


结果:



2.插值法

代码:

<script>

var arr=[3,8,89,78,34,56,18,45];

window.onload=function(){
var arrSort=[];
arrSort[0]=arr[0];
var flag=0;
for(var i=1;i<arr.length;i++){
flag=0;
for(var j=0;j<arrSort.length;j++){
if(arr[i]<arrSort[j]){
arrSort.splice(j,0,arr[i]);
flag=1;
break;
}
}
if(flag==0){
arrSort.push(arr[i]);
}
}
for(var i=0; i<arrSort.length;i++){
document.write(arrSort[i]);
document.write(";");

}
}

</script>


结果:



3.二分法:

代码

<script>

var arr=[90,45,34,67,54,8,67,32];

window.onload=function(){
var nArr=[];
nArr[0]=arr[0];
var len =arr.length;
var left=0;
var right=0;
var point=0;

for(var i=1; i<len;i++){
left=0;
var nlen=nArr.length;
right=nlen;
for(var j=0;j<nlen; j++){
point =Math.floor((left+right)/2);

    if(nArr[point]<arr[i]){
left=point+1;
}else{
right=point;
}
if(left==right){
nArr.splice(left,0,arr[i]);

               break;
}
}
}
for(var i=0;i<nArr.length;i++){
document.write(nArr[i]);
document.write(";");
}

}

</script>


结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: