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 相关文章推荐
Jsonp 跨域的原理以及Jquery的解决方案
May 18 Javascript
JavaScript类和继承 this属性使用说明
Sep 03 Javascript
js 处理URL实用技巧
Nov 23 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
Sep 19 Javascript
jQuery实现带滚动线条导航效果的方法
Jan 30 Javascript
JavaScript中数组的合并以及排序实现示例
Oct 24 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
HTML的select控件美化
Mar 27 Javascript
js仿微信公众平台打标签功能
Apr 08 Javascript
react项目如何使用iconfont的方法步骤
Mar 13 Javascript
vue2.0 实现富文本编辑器功能
May 26 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 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
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Django之form组件自动校验数据实现
2020/01/14 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
高三生物教学反思
2014/01/25 职场文书
宣传活动总结范文
2014/07/01 职场文书
计生工作先进事迹
2014/08/15 职场文书
诚实守信演讲稿
2014/09/01 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
初中班干部工作总结
2015/08/10 职场文书
2016国培研修心得体会
2016/01/08 职场文书
Python实现聚类K-means算法详解
2022/07/15 Python