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 相关文章推荐
超级简单的图片防盗(HTML),好用
Apr 08 Javascript
JavaScript的9个陷阱及评点分析
May 16 Javascript
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
jQuery Lightbox 图片展示插件使用说明
Apr 25 Javascript
javascript实用小函数使用介绍
Nov 11 Javascript
JSON 对象未定义错误的解决方法
Sep 29 Javascript
详解Vue-基本标签和自定义控件
Mar 24 Javascript
浅谈react前后端同构渲染
Sep 20 Javascript
Angular ng-animate和ng-cookies用法详解
Apr 18 Javascript
vue项目中使用tinymce编辑器的步骤详解
Sep 11 Javascript
浅谈React Event实现原理
Sep 20 Javascript
vue组件中节流函数的失效的原因和解决方法
Dec 02 Vue.js
浅析$(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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
php中异常处理方法小结
2015/01/09 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
详解Vue 如何监听Array的变化
2019/06/06 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
Python描述器descriptor详解
2015/02/03 Python
Python常用小技巧总结
2015/06/01 Python
详解Django中的权限和组以及消息
2015/07/23 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
python实现数字炸弹游戏
2020/07/17 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
金宝贝童装官网:Gymboree
2016/08/31 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
三年级数学教学反思
2014/01/31 职场文书
家长给学校的建议书
2014/05/15 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2014年技术员工作总结
2014/11/18 职场文书
工作失职检讨书
2015/01/26 职场文书
毕业典礼主持词
2015/06/29 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android