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 相关文章推荐
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
全面解析Bootstrap弹窗的实现方法
Dec 01 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 Javascript
JS简单实现无缝滚动效果实例
Aug 24 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
Sep 21 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 Javascript
JS实现二维数组横纵列转置的方法
Apr 17 Javascript
webpack打包react项目的实现方法
Jun 21 Javascript
详解JavaScript类型判断的四种方法
Oct 21 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
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
windows下安装python paramiko模块的代码
2013/02/10 Python
Python设计模式之单例模式实例
2014/04/26 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
python如何将图片转换为字符图片
2020/08/19 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
结婚邀请函范文
2014/01/14 职场文书
采购助理岗位职责
2014/02/16 职场文书
洗发露广告词
2014/03/14 职场文书
跑操口号
2014/06/12 职场文书
2014年行政部工作总结
2014/11/19 职场文书
首次购房证明
2015/06/19 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
学校运动会开幕词
2016/03/03 职场文书