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 的值。

原文地址:https://www.cnblogs.com/7qin/p/10197943.html

时间: 2024-10-12 18:30:04

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

PHP对一个二维数组内的元素进行排序和冒泡排序

$arr=array( 'a'=>array('name'=>'n1','age'=>22), 'b'=>array('name'=>'n2','age'=>21), 'c'=>array('name'=>'n3','age'=>25), 'd'=>array('name'=>'n4','age'=>20) ); //要求根据age值,对数组进行排序. $newArr=array(); $arrn=$arr; foreach($arr

对数组中数据的大小排序

现有一组数据,需要对其进行从小到大的进行排序 1:冒泡法排序,时间复杂度O(n2) public class popSort{    public static void main(String[] args) { int[] arr={1,161,151,2,5,6,7,46,4,22,545,232,11,58};        int len = arr.length;        for(int i=0;i<len-1;i++){ for(int j=0; j<len-i-1;j++

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

function findMin(start,arr){ var iMin = 99999; var iMinIndex = -1; for(var i = start;i<arr.length;i++){ if(arr[i]<iMin){ iMin = arr[i]; iMinIndex = i; } } return iMinIndex; } var arr = [12,5,8,7,-1,33,100,-101]; for(var i = 0;i<arr.length;i++){ /

二维数组按照指定的字段排序的函数

/** * 二维数组根据字段进行排序 * @params array $array 需要排序的数组 * @params string $field 排序的字段 * @params string $sort 排序顺序标志 SORT_DESC 降序:SORT_ASC 升序 */ function arraySequence($array, $field, $sort = 'SORT_DESC') { $arrSort = array(); foreach ($array as $uniqid =>

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

转:http://blog.csdn.net/dxnn520/article/details/8267173 var定义的变量应该是字符串,有时没有经过类型转换而进行比较的话,小于十的话还可以,如果大于十就会出错 例: 1 var hour_select_begin=$('#hour_select_begin option:selected').text(); 2 3 var hour_select_end=$('#hour_select_end option:selected').text()

一月十日练习习题,1数组数据存入字典并输出2降序 和倒叙 输出数组中内容3对字符串当中信息进行查找是否存在4 把数组当中信息尽心中文排序

// //  main.m //  Pratise_Jan10_1 // //  Created by wangyang on 16/1/10. //  Copyright (c) 2016年 Wangyang. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 第1题 请将如下数据存储成字典,并将字典

统计数组中数字的个数

输入:10个整数,如 9 9 0 7 8 6 5 7 3 9 输出:统计每个数字出现的次数,并按数字的大小排序 0:1 3:1 5:1 6:1 7:2 8:1 9:3 #include <iostream> #include <map> using namespace std; int main() { map<int, int> m; int input[10]; int i; for (i = 0; i < 10; i++) { cin >> in

js 字符串转换数字

js 字符串转换数字  方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示例如下: parseInt("1234blue"); //returns 1234parseInt("0xA"); //ret

js对数组元素大小排序实例代码

js对数组元素大小排序实例代码:在实际应用中,有时候需要对数组中的元素按照大小来进行排序,当然是先排序的方法有多种,比如使用数组对象自带的sort()方法,本章节再来分享一种其他的方式,先看代码实例: var org=[5,4,3,2,1,6,7,9,8,10]; var tempArr=new Array(); for(var i=0;i<org.length;i++) { if(i==0) { tempArr[0]=org[0]; //把第一个元素放到新序列 } else { for(var