Javascript实现三种排序:冒泡排序、选择排序、插入排序

< script type = " text/javascript " >
        
var  a;
        a 
=  [ 66 53 11 5 4 3 2 1 ];
        
/* 冒泡排序 */
        (
function  maopaopaixu() {
            
for  ( var  i  =   0 ; i  <  a.length  -   1 ; i ++ ) { // 比较的次数是length-1
                 for  ( var  j  =   0 ; j  <  a.length  -   1   -  i; j ++ ) {
                    
if  (a[j]  >  a[j  +   1 ]) {
                        
var  tmp  =  a[j];
                        a[j] 
=  a[j  +   1 ];
                        a[j 
+   1 =  tmp;
                    }
                }
            }
            alert(a);
        })();

        a 
=  [ 66 53 11 5 4 3 2 1 ];
        
/* 选择排序 */
        (
function  xuanzepaixu() {
            
var  min /* 最小项的索引 */ , tmp;
            
for  ( var  out  =   0 ; out  <  a.length  -   1 ; out ++ ) { // 比较的次数是length-1
                min  =  out;
                
for  ( var  inner  =  out  +   1 ; inner  <  a.length; inner ++ ) { // 这里是a.length,不是a.lenght-1,因为后者会导致右数第2项没法参与排序。
                     if  (a[inner]  <  a[min]) {
                        min 
=  inner;
                    }
                    
// 将最小的项移动到左侧
                    tmp  =  a[out];
                    a[out] 
=  a[min]
                    a[min] 
=  tmp;
                }
            }
            alert(a);
        })();

        a 
=  [ 66 53 11 5 4 3 2 1 ];
        
/* 插入排序 */
        (
function  charupaixu() {
            
for  ( var  out  =   1 ; out  <  a.length; out ++ ) {
                
var  tmp  =  a[out];
                
var  inner  =  out;
                
while  (a[inner  -   1 >  tmp) {
                    a[inner] 
=  a[inner  -   1 ];
                    
-- inner;
                }
                a[inner] 
=  tmp;
            }
            alert(a);
        })();
    
< / script>

转载于:https://www.cnblogs.com/kaima/archive/2009/09/02/1558615.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值