JavaScript中数组的排序方法:1.冒泡排序 2.选择排序
//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.选择排序的更多相关文章
- javascript中数组Array的方法
一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...
- 【排序算法】——冒泡排序、选择排序、插入排序、Shell排序等排序原理及Java实现
排序 1.定义: 所谓排序,即是整理文件中的内容,使其按照关键字递增或递减的顺序进行排列. 输入:n个记录,n1,n2--,其对应1的关键字为k1,k2-- 输出:n(i1),n(i2)--,使得k( ...
- php排序介绍_冒泡排序_选择排序法_插入排序法_快速排序法
这里我们介绍一些常用的排序方法,排序是一个程序员的基本功,所谓排序就是对一组数据,按照某个顺序排列的过程. 充效率看 冒泡排序法<选择排序法<插入排序法 排序分两大类: 内部排序法 交换式 ...
- javascript中数组常用的方法
在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...
- javascript中数组常用的方法和属性
前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属 ...
- Javascript中数组的判断方法
摘要: 1.数组检测的方法: 1) typeof . 2) instanceof . 3) constructor . 4) Object.prototype.toString. 5) Array.i ...
- javascript中数组的concat()方法 - 数组连接
<html> <head> <title>数组的concat()方法</title> <script> /* 数组的concat()方法: ...
- 【前端_js】javascript中数组的map()方法
数组的map()方法用于遍历数组,每遍历一个元素就调用回调方法一次,并将回调函数的返回结果作为新数组的元素,被遍历的数组不会被改变. 语法:let newAarray = arr.map(functi ...
- Java常用的经典排序算法:冒泡排序与选择排序
一.冒泡排序 冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为 ...
- 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
好吧,竟然不能单发一张图,不够200字啊不够200字! 在<JavaScript高级程序设计>中,分门别类介绍了非常多数组方法,其中迭代方法里面有6种,这6种方法在实际项目有着非常广泛的作 ...
随机推荐
- Python使用suds调用webservice报错解决方法:AttributeError: 'Document' object has no attribute 'set'
使用python的suds包调用webservice服务接口,报错:AttributeError: 'Document' object has no attribute 'set' 调用服务接口代码: ...
- rpm方式安装MySQL5.1.73
1.安装MySQL server 首先下载好mysql的rpm安装包 使用rpm命令安装: rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm 命令解释:i ...
- djago 定义后台地址
在app 中urls.py 可替换原始后台登陆地址 /admin 为自定义地址
- Sitecore xDB基础知识 - 识别用户,联系人,访客,客户
体验数据库(xDB)是Sitecore平台的关键元素,特别是当您希望将解决方案提升到简单的内容管理要求之外时.它用于跟踪您的用户(即联系人,访客,客户)与您网站的互动方式.营销人员可以使用此数据来了解 ...
- Linux基础命令---显示登录用户logname
logname 显示当前登录的用户名称.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 logname 2 ...
- 小米note3的开发者选项在哪里?怎么进入开发者模式?如何显示布局边界?
小米note3的开发者选项在哪里?小米note3怎么进入开发者模式1.找到[设置],打开2.点击[我的设备]3.点击[全部参数]4.连续点击[MIUI版本]5次5.之后就会看见提示 “进入到开发者模式 ...
- tomcat tomcat-user.xml被还原
问题:把tomcat——conf中的tomcat-user.xml中的角色.密码修改之后,在eclipse重启Tomcat,设置的Tomcat用户名和密码失效. 解决问题:同时修改tomcat——co ...
- tft屏图像文字一起显示
2010-05-04 21:06:00 M16内部flash只有16k,要做数码相框,只能用usart通信了.明天继续研究.
- LIS最长上升子序列三种方法 (模板)
O(n^)的方法: #include <iostream> #include <stdio.h> #include <cstring> #include <a ...
- GoldenGate实时投递数据到大数据平台(5) - Kafka
Oracle GoldenGate是Oracle公司的实时数据复制软件,支持关系型数据库和多种大数据平台.从GoldenGate 12.2开始,GoldenGate支持直接投递数据到Kafka等平台, ...