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 相关文章推荐
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
jQuery 关于伪类选择符的使用说明
Apr 24 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
JavaScript入门教程之引用类型
May 04 Javascript
功能强大的jquery.validate表单验证插件
Nov 07 Javascript
基于Javascript倒计时效果
Dec 22 Javascript
Express框架之connect-flash详解
May 31 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
原生js实现随机点名功能
Nov 05 Javascript
javascript实现商品图片放大镜
Nov 28 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替换字符串中间字符为省略号的方法
2015/05/04 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
php表单提交实例讲解
2015/11/12 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
js注意img图片的onerror事件的分析
2011/01/01 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
javascript 上下banner替换具体实现
2013/11/14 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
详解Django中Request对象的相关用法
2015/07/17 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
网管求职信
2014/03/03 职场文书
政府门卫岗位职责
2014/04/29 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS