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


Posted in Javascript onSeptember 03, 2016

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

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 相关文章推荐
jQuery 性能优化指南 (1)
May 21 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
Apr 17 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
May 04 Javascript
jQuery中on()方法用法实例
Jan 19 Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
Jun 05 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
Nov 17 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
Javascript中八种遍历方法的执行速度深度对比
Apr 25 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
Sep 04 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 Javascript
浅析$(function) ready和onload 的区别
Sep 03 #Javascript
详解Javascript中prototype属性(推荐)
Sep 03 #Javascript
jQuery基本选择器之标签名选择器
Sep 03 #Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
Sep 03 #Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 #Javascript
AngularJs  unit-testing(单元测试)详解
Sep 02 #Javascript
AngularJs Managing Service Dependencies详解
Sep 02 #Javascript
You might like
PHP中基本符号及使用方法
2010/03/23 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
复选框全选与全不选操作实现思路
2013/08/18 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
python读取并写入mat文件的方法
2019/07/12 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
Django密码存储策略分析
2020/01/09 Python
Python能做什么
2020/06/02 Python
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
培训讲师岗位职责
2014/04/13 职场文书
如何写求职信
2014/05/24 职场文书
公司副总经理任命书
2014/06/05 职场文书
财会专业大学生求职信
2014/09/26 职场文书
档案管理员岗位职责
2015/02/12 职场文书
抢劫罪辩护词
2015/05/21 职场文书
2016年国陪研修感言
2015/11/18 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS