//1.选择排序:
//从小到大排序:通过比较首先选出最小的数放在第一个位置上,然后在其余的数中选出次小数放在第二个位置上,依此类推,直到所有的数成为有序序列。 var arr2=[19, 8, 27, 6, 15, 4];
for(var i=0;i<arr2.length-1;i++){
for(var j=i+1;j<arr2.length;j++){
if(arr2[j]<arr2[i]){
var temp=arr2[j];
arr2[j]=arr2[i];
arr2[i]=temp;
}
}
}
console.log(arr2);//4,6,8,15,19,27
/*
* //第一轮:第一个数字和后面的每一位进行比较,选择出最小的一个放在第一位上。
[8, 19, 27, 6, 15, 4] //8和19比较选择出8放在第一位
[8, 19, 27, 6, 15, 4] //8和27比较选择出8放在第一位
[6, 19, 27, 8, 15, 4] //8和6比较选择出6放在第一位
[6, 19, 27, 8, 15, 4] //6和15比较选择出6放在第一位
[4, 19, 27, 8, 15, 6] //6和4比较选择出4放在第一位 //第二轮:第二个数字和后面的每一位进行比较,选择出最小的一个放在第二位上。
[4, 19, 27, 8, 15, 6] //19和27比较选择出19放在第二位
[4, 8, 27, 19, 15, 6] //19和8比较选择出8放在第二位
[4, 8, 27, 19, 15, 6] //8和15比较选择出8放在第二位
[4, 6, 27, 19, 15, 8] //8和6比较选择出6放在第二位 *
//第三轮:第三个数字和后面的每一位进行比较,选择出最小的一个放在第三位上。
[4, 6, 19, 27, 15, 8] //27和19比较选择出19放在第三位
[4, 6, 15, 27, 19, 8] //19和15比较选择出15放在第三位
[4, 6, 8, 27, 15, 19] //15和8比较选择出8放在第三位 //第四轮:第四个数字和后面的每一位进行比较,选择出最小的一个放在第四位上。 [4, 6, 8, 15, 27, 19] //27和15比较选择出15放在第四位
[4, 6, 8, 15, 27, 19] //15和19比较选择出15放在第四位 // 第五轮:第五个数字和后面的每一位进行比较,选择出最小的一个放在第五位上。 [4, 6, 8, 15,19, 27] //27和19比较选择出19放在第五位 */

  

//2.冒泡排序:  从头到尾,比较相邻的两个元素的大小,如果符合交换条件,交换两个元素的位置。每一轮比较中,都会选出一个最大的数,放在正确的位置
var arr = [19, 8, 27, 6, 15, 4];
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-i;j++){ //因为每一轮比较都会选择出最大的一位放在最后,下次再次比较时不用和已经选择出的进行比较,所以才会有 j<arr.length-i ;
if(arr[j]>arr[j+1]){ //如果前面的数比后面的数大,定义一个临时变量来交换两个数的位置。
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
console.log(arr);// 4,6,8,15,19,27
//从小到大排序:
/*
* //第一轮:
[8, 19, 27, 6, 15, 4]
[8, 19, 27, 6, 15, 4]
[8, 19, 6, 27, 15, 4]
[8, 19, 6, 15, 27, 4]
[8, 19, 6, 15, 4, 27]
// 第一轮选出了最大的元素27放在了数组的最后一位 //第二轮:
[8, 19, 6, 15, 4, 27]
[8, 6, 19, 15, 4, 27]
[8, 6, 15, 19, 4, 27]
[8, 6, 15, 4, 19, 27] //第二轮选出了最大的元素19放在了数组的倒数第二位
*
//第三轮:
[6, 8, 15, 4, 19, 27]
[6, 8, 15, 4, 19, 27]
[6, 8, 4, 15, 19, 27] //第三轮选出了最大的元素15放在了数组的倒数第三位 //第四轮: [6, 8, 4, 15, 19, 27]
[6, 4, 8, 15, 19, 27] // 第四轮选出了最大的元素8放在了数组的倒数第四位 // 第五轮: [4, 6, 8, 15, 19, 27] // 第五轮选出了最大的元素6放在了数组的第二位
*/

  

  

JavaScript中数组的排序方法:1.冒泡排序 2.选择排序的更多相关文章

  1. javascript中数组Array的方法

    一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...

  2. 【排序算法】——冒泡排序、选择排序、插入排序、Shell排序等排序原理及Java实现

    排序 1.定义: 所谓排序,即是整理文件中的内容,使其按照关键字递增或递减的顺序进行排列. 输入:n个记录,n1,n2--,其对应1的关键字为k1,k2-- 输出:n(i1),n(i2)--,使得k( ...

  3. php排序介绍_冒泡排序_选择排序法_插入排序法_快速排序法

    这里我们介绍一些常用的排序方法,排序是一个程序员的基本功,所谓排序就是对一组数据,按照某个顺序排列的过程. 充效率看 冒泡排序法<选择排序法<插入排序法 排序分两大类: 内部排序法 交换式 ...

  4. javascript中数组常用的方法

    在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...

  5. javascript中数组常用的方法和属性

    前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属 ...

  6. Javascript中数组的判断方法

    摘要: 1.数组检测的方法: 1) typeof . 2) instanceof . 3) constructor . 4) Object.prototype.toString. 5) Array.i ...

  7. javascript中数组的concat()方法 - 数组连接

    <html> <head> <title>数组的concat()方法</title> <script> /* 数组的concat()方法: ...

  8. 【前端_js】javascript中数组的map()方法

    数组的map()方法用于遍历数组,每遍历一个元素就调用回调方法一次,并将回调函数的返回结果作为新数组的元素,被遍历的数组不会被改变. 语法:let newAarray = arr.map(functi ...

  9. Java常用的经典排序算法:冒泡排序与选择排序

     一.冒泡排序                             冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为 ...

  10. 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some

    好吧,竟然不能单发一张图,不够200字啊不够200字! 在<JavaScript高级程序设计>中,分门别类介绍了非常多数组方法,其中迭代方法里面有6种,这6种方法在实际项目有着非常广泛的作 ...

随机推荐

  1. AutoMapper.Mapper.CreateMap报“System.NullReferenceException: 未将对象引用设置到对象的实例。”异常复现

    >>Agenda: >>Ⅰ.国庆假期问题出现 >>Ⅱ.双休日异常再次出现 >>Ⅲ.排障 >>Ⅳ.异常复盘 >>Ⅴ.修复后监测 & ...

  2. php 下载完成后删除文件

    最近遇到一个需求:下载用户上传的图片,但是图片不断更新. 1.需要将图片从图片服务器下载到网站后台服务器 2.压缩文件夹生成zip压缩包 3.下载压缩包 4.删除压缩包和临时文件夹 其中遇到了一个问题 ...

  3. maven的下载,安装配置以及build一个java web项目

    一.下载 下载地址:http://maven.apache.org/download.cgi 二.安装 下载完成后,解压,进入到bin目录: 三.环境变量配置 复制bin目录下的文件的路径(如:xxx ...

  4. VS2010和选中代码相同的代码的颜色设置,修改高亮颜色

    使用Visual Studio 2010, 发现很难看清非活动的选中代码,研究了下,发现以下方法可以设置: 1. 菜单:工具  -> 选项  ->环境  ->字体和颜色 2. 在右边 ...

  5. html中通过js获取接口JSON格式数据解析以及跨域问题

    前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...

  6. html5-css的引入

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. Lua 服务器Socket通信实例

    local socket = require"socket" local host = "127.0.0.1"local port = "843&qu ...

  8. python os.path.dirname()

    ----返回文件所在的路径 ----如果path变量直接是文件名则返回空

  9. 《nodejs开发指南》微博实例express4.x版

    之前一直执着于前端开发,最近几天,开始学起了nodejs.作为一名前端开发者,见到这样一门用javascript写的后台自然是很激动的.但是,后台毕竟不同于前端,在学习的过程中,还是会遇到不少问题. ...

  10. numpy数学数据处理

    数学和统计方法 sum 对数组中全部或某轴向的元素求和.零长度的数组的sum为0. mean 算术平均数.零长度的数组的mean为NaN. import numpy as np import nump ...