正常冒泡排序:

function evlabc(a) { //排序大小
var i = j = t = 0;
for (i = 0; i < a.length; i++) {
for (j = 0; j < a.length; j++) {
if (a[i] < a[j]) {// 相邻元素两两对比
t = a[i];
a[i] = a[j];
a[j] = t;
}
console.log('i:' + i + ' j:' + j + ' 当前数组为:' + a);
}
}
return a;
}
var arr = [5, 100, 6, 3, -12];
evlabc(arr);

冒泡排序优化版:

function sort(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){// 相邻元素两两对比
var hand = arr[j];
arr[j]=arr[j+1];
arr[j+1]=hand; }
console.log('i:' + i + ' j:' + j + ' 当前数组为:' + arr);
}
}
return arr;
}
var ar = [5,100,6,3,-12];
sort(ar);

  由此可以看出,将相邻的两个数依次相比较,大数向后放,小数向前移。即是位置交换实现小数在前,大数在后。经过10次比较后,最终实现重排。

如果从大到小排序的话,则将if(arr[j]>arr[j+1])改为if(arr[j]<arr[j+1])即可

极简sort版:

function sortNumber(a,b){//升序
return a - b
}
var arr = [5, 100, 6, 3, -12];
arr.sort(sortNumber);

关于sort()函数 http://www.w3school.com.cn/jsref/jsref_sort.asp

sort函数没有使用参数时,将按字母顺序对数组中的元素进行排序。如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。

js数组内数字按大小排序实现函数的更多相关文章

  1. js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数

    1.javascript的数组API Js代码 收藏代码 //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.lengt ...

  2. js数组内置方法

    var arr = ['A','B','C','D']; length 计算数组的长度 arr.length//4   indexOf() 搜索一个指定的元素的位置 arr.indexOf('C'); ...

  3. Js数组内对象去重

    let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李& ...

  4. js数组中数字从小到大排列

    function findMin(start,arr){ var iMin = 99999; var iMinIndex = -1; for(var i = start;i<arr.length ...

  5. JS数组根据属性来实现排序

    var data = [{ name: "zhao", age: }, { name: "qian", age: }, { name: "sun&qu ...

  6. php数组按值的大小排序

    array_multisort(array_column($nima,'zongfen'),SORT_DESC,$nima);

  7. Skill 返回一个数字list的大小排序信息

    https://www.cnblogs.com/yeungchie/ code procedure(ycSortList(numlist) prog((size sort) foreach(main ...

  8. js,jquery的数字型字符串变量比较大小

    转:http://blog.csdn.net/dxnn520/article/details/8267173 var定义的变量应该是字符串,有时没有经过类型转换而进行比较的话,小于十的话还可以,如果大 ...

  9. JS 数组对象

    定义数组: 数组对象用来在单独的变量名中存储一系列的值. 创建一个数组有三种方法. 1: 常规方式: var myCars=new Array(); myCars[0]="Saab" ...

随机推荐

  1. MySQL模拟Oralce闪回操作

    在前面的文章中我们介绍了MySQL误操作后数据恢复(update,delete忘加where条件),大概操作是通过sed命令把binlog中相关SQL误操作给逆向回来,然后导入SQL文件来恢复错误操作 ...

  2. sql语句优化(二)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 建立索引好处  : 之前做的一个项目 , 一个查询10w多条的数据 ,需要20s ,后来加 ...

  3. wordpress去掉<link rel='dns-prefetch' href='//s.w.org' />

    我们在用wordpress建站时经常会看到<link rel='dns-prefetch' href='//s.w.org' />,应该是为了从s.w.org预获取表情和头像,目的是提高网 ...

  4. wordpress 无法发送邮件

    前几天创建了几个wordpress项目,有些项目中用到了用户注册,但是在实际操作中发现,用户注册无法接收到认证链接,在查找了相关资料后大多归类为几个原因: 服务器本身不支持mail()函数 未配置相关 ...

  5. 轻量级ORM工具Simple.Data

    今天推举的这篇文章,本意不是要推举文章的内容,而是据此介绍一下Simple.Data这个很有意思的类ORM工具. 现在大家在.NET开发中如果需要进行数据访问,那么基本都会使用一些ORM工具,比如微软 ...

  6. jquery-ui 之dialog

    1,引入css和js <script type="text/javascript" src="${ctx}/js/ytd/platform/zdjsDlbyqbh/ ...

  7. echart图表

    http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts

  8. Scala常用变量生命周期

    val words = *** //在words被定义时取值 lazy val words = *** //在words被首次使用时取值 def words = *** //在每一次words被使用时 ...

  9. 请求&注解

    @RequestMapping("/{page}") //获取路径中的page参数值 public String showPage(@PathVariable String pag ...

  10. Linux学习笔记:常用100条命令(二)

    linux常用命令 1.vi中复制快捷键 yy --复制 p --粘贴 2.vi中保存退出 ZZ 3.linux解压zip unzip 4.查看软件组包 yum grouplist 5.安装组包 yu ...