js数组内数字按大小排序实现函数
正常冒泡排序:
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数组内数字按大小排序实现函数的更多相关文章
- js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数
1.javascript的数组API Js代码 收藏代码 //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.lengt ...
- js数组内置方法
var arr = ['A','B','C','D']; length 计算数组的长度 arr.length//4 indexOf() 搜索一个指定的元素的位置 arr.indexOf('C'); ...
- Js数组内对象去重
let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李& ...
- js数组中数字从小到大排列
function findMin(start,arr){ var iMin = 99999; var iMinIndex = -1; for(var i = start;i<arr.length ...
- JS数组根据属性来实现排序
var data = [{ name: "zhao", age: }, { name: "qian", age: }, { name: "sun&qu ...
- php数组按值的大小排序
array_multisort(array_column($nima,'zongfen'),SORT_DESC,$nima);
- Skill 返回一个数字list的大小排序信息
https://www.cnblogs.com/yeungchie/ code procedure(ycSortList(numlist) prog((size sort) foreach(main ...
- js,jquery的数字型字符串变量比较大小
转:http://blog.csdn.net/dxnn520/article/details/8267173 var定义的变量应该是字符串,有时没有经过类型转换而进行比较的话,小于十的话还可以,如果大 ...
- JS 数组对象
定义数组: 数组对象用来在单独的变量名中存储一系列的值. 创建一个数组有三种方法. 1: 常规方式: var myCars=new Array(); myCars[0]="Saab" ...
随机推荐
- 剑指offer-合并两个排列的链接
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. public ListNode Merge(ListNode list1,ListNode ...
- 有关java反射机制 小结
111111111111 Class<?> cls = Class.forName("包名.类名"); Object o = cls.newInstance(); 22 ...
- SAP 创建 component
1: 进入x3c 系统,输入 T-CODE BSP_WD_CMPWB 2: 输入以Z开头的组件名. 点击create using wizard 3: 输入应用属性 4: 定义 bol mod ...
- 数据结构与算法之PHP实现链表类(单链表/双链表/循环链表)
链表是由一组节点组成的集合.每个节点都使用一个对象的引用指向它的后继.指向另一个节点的引用叫做链表. 链表分为单链表.双链表.循环链表. 一.单链表 插入:链表中插入一个节点的效率很高.向链表中插 ...
- Java 基础 面向对象之构造方法和关键字
构造方法 构造方法简介 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是在创建对象的时候就要做的 ...
- inner join, left join, right join 和 full join
inner join:理解为“有效连接”,两张表中都有的数据才会显示left join:理解为“有左显示”,比如on a.field=b.field,则显示a表中存在的全部数据及a.b中都有的数据,a ...
- 第1章 CLR的执行模型
1.1将源代码编译成托管代码模块
- Pandas 常见的基本方法
说明:文章所有内容均截选自实验楼教程[Pandas 使用教程],想要查看教程完整内容,点击教程即可~ 前言: Pandas 是非常著名的开源数据处理工具,我们可以通过它对数据集进行快速读取.转换.过滤 ...
- CentOS6.5 安装openssl
安装比较简单! 1.下载安装包 [root@mycentos ~]# wget http://www.openssl.org/source/openssl-1.0.2f.tar.gz 2.解压和编译 ...
- 要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
1.程序设计思想验证码 ①定义一个字符串变量来保存随机生成的. ②利用循环产生六位随机数,在产生每一位时将其转换为char类型并写在字符串后面. ③利用对话框显示生成的验证码,并提示用户输入验证码. ...