JavaScript 冒泡排序和选择排序的实现代码

 更新时间:2016年09月03日 16:58:37   转载 作者:前端爱好者  
本文通过实例代码给大家介绍了js冒泡排序和选择排序的实现代码,代码简单易懂,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧

废话不多说了,直接给大家贴代码了,具体代码如下所述:

var array = [1,2,3,4,5]; // ---> 服务
//效率 ---> 针对一个有序的数组 效率最高
//标志 true false 
for(var j = 0; j < array.length - 1;j++ ){
//- j 每次排序完成之后 后面减少比较的次数
var isTrue = true; //如果数组本身就是升序,则直接输出
for(var i = 0; i < array.length - j - 1;i++){
if(array[i] > array[i+1])
{
var temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
isTrue = false;
}
}
document.write(array);
if(isTrue){
break;
}
}
var array = [12,34,4,6,20];
//length - 1 j = 0 - length - 1
for(var j = 0; j < array.length - 1;j++){
var min = array[j]; // 1 3 34 4 345 5
var minIndex = j;
for(var i = j + 1; i < array.length;i++){
if(array[i] < min){
min = array[i];
minIndex = i;
}
}
if(minIndex != j){
var temp = array[minIndex];
array[minIndex] = array[j];
array[j] = temp;
}
}

下面在看下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>

以上所述是小编给大家介绍的JavaScript 冒泡排序和选择排序的实现代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家!

相关文章

  • 浅谈JavaScript异常处理语句

    浅谈JavaScript异常处理语句

    考虑到 JS 中的错误可比服务器端的代码产生的错误要多得多,并且还难以发现及修正,所以 JS 代码必须有异常处理以及全局一场处理。
    2015-06-06
  • 文字不间断滚动(上下左右)实例代码

    文字不间断滚动(上下左右)实例代码

    文字不间断滚动(上下左右)实例代码,需要的朋友可以参考一下
    2013-04-04
  • ie下js不执行的几种可能

    ie下js不执行的几种可能

    本文主要介绍了ie下js不执行的几种可能,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • js 操作符实例代码

    js 操作符实例代码

    一个单例对象,承载大多数常用的函数列表
    2009-10-10
  • Javascript的并行运算实现代码

    Javascript的并行运算实现代码

    随着多核cpu的普级,并发/并行多线程运算在主流的编程语言越来越流行,而在目前Javascript实现中还看不到在语言方面支持多线程,现在Javascript如此流行,真希望今后会在语言的层面有很大的变化.
    2010-11-11
  • JavaScript实现Fly Bird小游戏

    JavaScript实现Fly Bird小游戏

    这篇文章主要为大家详细介绍了JavaScript实现Fly Bird小游戏的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 微信小程序实现弹出菜单功能

    微信小程序实现弹出菜单功能

    最近做项目需要这样的需求,当用户点击标签栏按钮,向下弹出菜单,再次点击,收回菜单。接下来通过本文给大家介绍微信小程序实现弹出菜单功能,感兴趣的朋友一起看看吧
    2018-06-06
  • 微信小程序实现选项卡效果

    微信小程序实现选项卡效果

    这篇文章主要介绍了微信小程序实现选项卡效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 围观tangram js库

    围观tangram js库

    Tangram开源将近一周,持续围观了几天。写一个简单的围观笔记吧。
    2010-12-12
  • FireFox下XML对象转化成字符串的解决方法

    FireFox下XML对象转化成字符串的解决方法

    近,在客户端解吸xml时候,需要将XML转化成字符串,看了很多文章,介绍的最多的是将XML字符串转化成对象
    2011-12-12

最新评论