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

1.冒泡排序:

代码:

<script>
var arr=[12,23,56,34,89,95];
window.οnlοad=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.οnlοad=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.οnlοad=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>

结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值