//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. react结合redux开发

    先加上我码云的地址:https://gitee.com/ldlx/react_and_rudex

  2. laravel学习历程

    1.www目录下拉下来一个laravel框架 composer create-project laravel/laravel laravelapp --prefer-dist laravelapp 为 ...

  3. vue--监听属性完成大小写字母间的转换

    监听属性 watch侦听属性的作用是侦听某属性值的变化,从而做相应的操作,侦听属性是一个对象,它的键是要监听的对象或者变量,值一般是函数,当你侦听的元素发生变化时,需要执行的函数,这个函数有两个形参, ...

  4. ABC2

    OpenCV http://www.cnblogs.com/skyfsm/p/7263773.html http://www.cnblogs.com/skyfsm/p/7613314.html SQL ...

  5. Yii2将查询数据变为键值对数组及查询构建器

  6. Nginx技术研究系列6-配置详解

    前两篇文章介绍了Nginx反向代理和动态路由: Ngnix技术研究系列1-通过应用场景看Nginx的反向代理 Ngnix技术研究系列2-基于Redis实现动态路由 随着研究的深入,很重要的一点就是了解 ...

  7. PCH 文件 和 ProjectName-Bridging-Header 配置

    1.简介 PCH文件是Xcode编程中全局引用共享的文件.可以在这里引入头文件或者宏定义来方便程序中多个文件访问. 2.PCH文件创建 打开工程 New File… -> iOS Other - ...

  8. Python print 中间换行 直接加‘\n’

  9. 邮件服务器hMailServer管理工具hMailServer Administrator汉化(转)

    //实现:邮件服务器hMailServer管理工具hMailServer Administrator的汉化 //环境: Windows Server 2008 R2 hMailServer Admin ...

  10. 转:【专题三】自定义Web服务器

    前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到 ...