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 相关文章推荐
List the Codec Files on a Computer
Jun 11 Javascript
运用jquery实现table单双行不同显示并能单行选中
Jul 25 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
Nov 24 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
使用JS代码实现点击按钮下载文件
Nov 12 Javascript
微信小程序 tabs选项卡效果的实现
Jan 05 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
Aug 29 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 Javascript
详解微信小程序动画Animation执行过程
Sep 23 Javascript
一文帮你理解PReact10.5.13源码
Apr 03 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下实现农历日历的代码
2007/03/07 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
PHP函数超时处理方法
2016/02/14 PHP
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
python调用百度API实现人脸识别
2020/11/17 Python
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
普罗米修斯教学反思
2014/02/06 职场文书
难忘的一天教学反思
2014/04/30 职场文书
庆六一活动总结
2014/08/29 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
JavaScript中reduce()的用法
2022/05/11 Javascript