码迷,mamicode.com
首页 > 编程语言 > 详细

算法---冒泡排序法

时间:2016-12-20 00:37:20      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:common   分享   cti   实现   测试   var   lin   选择   rds   

冒泡排序:

通过对相邻元素的对比,并交换位置,一步一步的把一个元素给挑选出来。

我们可以使用两层嵌套的for循环来实现这个过程,也就是实现冒泡排序:

技术分享
//外层控制轮数
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];
    arr[j] = arr[j+1];
    arr[j+1] = temp;    
    }
  }
}
技术分享

   

  下面是冒泡排序的完整代码。

技术分享
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>冒泡排序</title>
    <meta name="keywords" content="关键字列表" />
    <meta name="description" content="网页描述" />
    <link rel="stylesheet" type="text/css" href="" />
    <style type="text/css"></style>
    <script type="text/javascript">
    //参数数字数组
    function bubble(arr){
        //检查参数
        if(toString.call(arr) !== ‘[object Array]‘){
            return false;
        }
        //获取数组长度
        var len = arr.length;
        if(len <= 1){//小于1不用排序
            return arr;
        }
        //外层控制轮数
        for(var i=0;i<len;i++){
            //标记是否有排序的元素
            var mark = true;
            //内层对数组元素进行冒泡选择
            for(var j=0;j<len-1-i;j++){
                //交互元素
                if(arr[j] > arr[j+1]){
                    mark = false;
                    var temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;    
                }
            }
            if(mark){
            //当没有进行冒泡选择时,证明已经排序好了
                return arr;    
            }
        }
    }
    //测试
    var ar = [9,3,7,4,8,2,5,1,6,0];
    alert(bubble(ar));
    </script>
</head>
<body>

</body>
</html>
技术分享

 

算法---冒泡排序法

标签:common   分享   cti   实现   测试   var   lin   选择   rds   

原文地址:http://www.cnblogs.com/mr-wuxiansheng/p/6201018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!