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 相关文章推荐
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
May 10 Javascript
重写javascript中window.confirm的行为
Oct 21 Javascript
javascript中为某个元素指定事件的三种方式
Aug 07 Javascript
JS扩展方法实例分析
Apr 15 Javascript
RequireJS多页面应用实例分析
Jun 29 Javascript
jQuery 3.0十大新特性最终版发布
Jul 14 Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 Javascript
Vue.js实现简单ToDoList 前期准备(一)
Dec 01 Javascript
用move.js库实现百叶窗特效
Feb 08 Javascript
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
js实现一款简单踩白块小游戏(曾经很火)
Dec 02 Javascript
Vue中使用import进行路由懒加载的原理分析
Apr 01 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
一个显示天气预报的程序
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
WHOIS类的修改版
2006/10/09 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
thinkphp缓存技术详解
2014/12/09 PHP
php中JSON的使用与转换
2015/01/14 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
javascript基本类型详解
2014/11/28 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
vue debug 二种方法
2018/09/16 Javascript
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
Python函数式编程
2017/07/20 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
np.random.seed() 的使用详解
2020/01/14 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
中专毕业生自我鉴定
2013/11/21 职场文书
学生周末长期请假条
2014/02/15 职场文书
委托协议书范本
2014/04/22 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
毕业证代领委托书
2014/09/26 职场文书
2014年政协工作总结
2014/12/09 职场文书
班主任高考寄语
2015/02/26 职场文书
单位计划生育责任书
2015/05/09 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python
python中的3种定义类方法
2021/11/27 Python
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫