精华内容
下载资源
问答
  • 怎么将二维数组排序
    2022-07-22 10:28:38

    刷leetcode时候有一道需要二维数组排序的题,特意记录一下 自己的这方面还不太清楚,总是弄混。

    Arrays.sort(intervals, (o1, o2) -> o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0]);
            

    这段简单的代码实现的是将intervals二维数组进行排序,以第一维升序第二维降序的顺序进行排序。

    其中o1o2分别代表intervals中的元素,o1表示右侧元素,o2表示左侧元素。

    当o1[0]和o2[0]两元素相等时,以第二维的o1[1]和o2[1]为标准进行排序。

    若不等,则按照第一维数据进行排序。

    其中o1-o2表示升序,o2-o1表示降序。

    底层实现是根据返回值来判断的,o1为右侧元素,o2为左侧元素。

    返回值>0,则不交换o1o2位置;

    返回值=0,不排序不交换位置;

    返回值<0,交换o1o2位置。

    所以,o1-o2若>0则保持原样,若o2大,返回值<0,则交换位置,所以return o1-o2表示升序。

    更多相关内容
  • /**作用: 二维数组排序函数,支持多键名排序 * 返回: 排序好的数组 * 使用: array_msort(数组,需要排序的键名,排序方式); * 例子: array_msort($cflist,"chapter_orderid","SORT_ASC"); * array_msort($arr,"name...
  • 我们知道在js中默认提供了sort函数,但是这个函数默认是按照数组内容的ascii码升序进行排列的,如果我们要对二维数组排序要如何做呢?在php中是有multi_sort函数可供调用的,但是在js中似乎没有这种函数,但是没关系...
  • 本文实例讲述了C#实现对二维数组排序的方法。分享给大家供大家参考。具体实现方法如下: /// /// A generic routine to sort a two dimensional array of a specified type based on the specified column. /// /...
  • 常用的系统函数有sort、asort、arsort、ksort、krsort等等,这里我主要说下对二维数组排序,两种方法: 一、用PHP自带array_multisort函数排序 复制代码 代码如下:<?php  $data = array(); $da
  • Labview二维数组排序

    2014-08-16 11:07:33
    不要看分数高,这个程序绝对可以对得起大家的分数。这个楼主的研究哈!反正下了评价后分数可以返还的................
  • 思路以及注意点、说明我都加在了代码旁边的注释里,好好悟悟!
  • 二维数组排序.vi
  • PHP 多维数组排序 根据二维数组中某个项排序,需要的朋友可以参考下。
  • 二维数组排序

    2013-09-29 17:01:09
    // 二维数组冒泡排序 public static void main(String[] args) { int i=0, j=0, temp = 0; int[][] nums1 = { { 34, 1, 22, 5 }, { 28, 98, 15, 32 }, { 33, -5, 17, 41 } }; int rows = nums1.length; //二维...
  • 主要介绍了php一维二维数组排序方法,以实例形式总结了针对一维数组的冒泡排序与使用array_multisort()对二位数组按照指定键值排序等方法,具有不错的参考借鉴价值,需要的朋友可以参考下
  • VB.NET二维数组快速排序(更新) 'OldArrays(),为排序二维数组;NewArrays(),为存放结果数组,SortColumnsOrOrders(),传递排序参数数组,偶数个为排序列号,奇数为升降序,0为升序,1为降序;FieldRow,是否有字段行...
  • 如何根据二维数组中的某一行或者某一列排序?假设data是一个numpy.array类型的二维数组,可以利用numpy中的argsort函数进行实现,代码实例如下: data = data[data[:,2].argsort()] #按照第3列对行排序 注意:...
  • 易语言-json_ksort 二维数组键值排序源码
  • js如何二维数组排序

    2021-09-11 23:32:58
    下面是我自己在项目中用到的二维数组排序;对于中文的排序用到了Unicode码进行排序,有个缺点就是中文只对第一个字排序,有需求者可以修改代码实现 /** * @description:降序 排序根据哪那个字段,适用于二维数组排序 ...

    下面是我自己在项目中用到的二维数组排序;对于中文的排序用到了Unicode码进行排序,有个缺点就是中文只对第一个字排序,有需求者可以修改代码实现

    /**
     * @description:降序 排序根据哪那个字段,适用于二维数组排序
     * @param {*}arr 要排序的数组
     * @param {*}key 需要排序的键名
     * @return {*}
     */
    const downsort = (arr = [], key) => {
      let tmp = JSON.parse(JSON.stringify(arr)); //深拷贝一份
      tmp.sort(function(a, b) {
      	//判断是不是数字,数字则不处理,不是数字则转为对应Unicode码
        a = !isNaN(Number(a[key])) ? a[key] : a[key].charCodeAt(0); 
        b = !isNaN(Number(b[key])) ? b[key] : b[key].charCodeAt(0);
        return a - b;
      });
      return tmp;
    };
    
    /**
     * @description: 升序 排序根据哪那个字段,适用于二维数组排序
     * @param {*}arr 要排序的数组
     * @param {*}key 需要排序的键名
     * @return {*}
     */
    const upsort = (arr = [], key) => {
      let tmp = JSON.parse(JSON.stringify(arr)); //深拷贝一份
      tmp.sort(function(a, b) {
        a = !isNaN(Number(a[key])) ? a[key] : a[key].charCodeAt(0);
        b = !isNaN(Number(b[key])) ? b[key] : b[key].charCodeAt(0);
        return b - a;
      });
      return tmp;
    };
    

    调用方法

    /**
    	第一个参数为数组,第二个为需要排序的键名
    */
    let a = upsort([{'name':'你'},{'name':'好'}],'name')
    //'[{"name":"好"},{"name":"你"}]'
    
    展开全文
  • 主要介绍了php 二维数组时间排序实现代码,需要的朋友可以参考下
  • 使用php对二维数组按数组值进行排序,由于使用[]形式,因此要求PHP版本>5.4,要移植到其它版本请随便
  • 二维数组指定的键名排序,首先大家想到的是array_multisort函数,关于array_multisort的用法我之前也写了一篇废话不多言,我们看个实例: <?php $data = array( 1001 => array( 'age' => 22, 'name' => '鸠...
  • 例如像下面的数组: 复制代码 代码如下:$users = array( array(...使用这个方法,会比较麻烦些,要age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下: 复制代码 代码如下:$ages = array();forea
  • 主要介绍了C#实现的二维数组排序算法,涉及C#针对二维数组的遍历、判断、排序等相关操作技巧,需要的朋友可以参考下
  • php二维数组排序

    千次阅读 2022-04-27 15:33:35
    文章目录测试数据通过usort排序通过array_multisort排序 测试数据 $arr = [ 'a' => ['a' => 11, 'b' => 12, 'c' => 13], 'b' => ['a' => 10, 'b' => 13, 'c' => 12], 'c' => ['a' =&...

    测试数据

            $arr = [
                'a' => ['a' => 11, 'b' => 12, 'c' => 13],
                'b' => ['a' => 10, 'b' => 13, 'c' => 12],
                'c' => ['a' => 12, 'b' => 11, 'c' => 10],
            ];
    

    通过usort排序

            # usort 排序会导致二维数组的key改变(key a,b,c 变成 0,1,2 这种)
            # 如果不在意key的改变可以用这种
            # $arr 是引用
            usort($arr, function ($current, $next) {
                # 正序排
                return $current['a'] > $next['a'];
            });      
    

    通过array_multisort排序

            $arr = [
                'a' => ['a' => 11, 'b' => 12, 'c' => 13],
                'b' => ['a' => 10, 'b' => 13, 'c' => 12],
                'c' => ['a' => 12, 'b' => 11, 'c' => 10],
            ];
            # 以二维数组的a作为比较值
            $key = array_column(array_values($arr), 'a');
            # 第一个参数需要提供二维数组排序依据
            # 第二个排序方式 SORT_ASC:正序 SORT_DESC:倒序
            # 第三个参数 要排序的二维数组,改动直接操作在该数组上
            # 排序能保证key不改变
            array_multisort($key, SORT_ASC, $arr);
    
    展开全文
  • Java二维数组排序

    千次阅读 2022-04-06 21:04:34
    今天在刷 力扣的时候,有道题卡住了,没办法去看题解,发现题解是二维数组排序了,我才猛然发现我还不了解二位数组排序的知识。所以来记录一下。 答案中的代码是这样的,假设需要排序的数组intervals: int[]...

    今天在刷 力扣的时候,有道题卡住了,没办法去看题解,发现题解是将其二维数组排序了,我才猛然发现我还不了解二位数组排序的知识。所以来记录一下。


    答案中的代码是这样的,假设需要排序的数组intervals:

    int[][] intervals = {{2,3},{2,9},{4,5},{3,7},{6,7},{8,9},{1,10}};
    Arrays.sort(intervals, new Comparator<int[]>() {
        @Override
        public int compare(int[] o1, int[] o2) {
            if(o1[0]==o2[0]){
                return o1[1] - o2[1];
            }
            return o1[0] - o2[0];
        }
    });

    此代码中,对于每个o1和o2数组,若各自第一个元素(也就是o1[0]和o2[0])相等,则按照各自第二个元素进行升序比较,否则就按照第一个元素进行升序比较。

    在此,o1[0] - o2[0] 表示升序,o2[0] - o1[0] 表示降序。

    比如这个代码,结果如下:

    1 10 
    2 3 
    2 9 
    3 7 
    4 5 
    6 7 
    8 9 

    o1[0]表示第一个元素,以此类推,所以我们想要根据第几个元素排序,就写入就好:

    // 按照第三个元素排序
    int[][] intervals = {{2,3,4,5},{2,9,7,5},{4,5,1,5},{3,7,1,2},{6,7,3,4}};
    Arrays.sort(intervals, new Comparator<int[]>() {
        @Override
        public int compare(int[] o1, int[] o2) {
            return o1[2] - o2[2];
        }
    });

    得到的结果如下:

    4 5 1 5 
    3 7 1 2 
    6 7 3 4 
    2 3 4 5 
    2 9 7 5 

    另外,他还有其他的写法:

    1、使用Lambda表达式的方式对Comparator比较器进行简写(JDK1.8+)

    int[][] intervals = {{2,3,4,5},{2,9,7,3},{4,5,1,5},{3,7,1,2},{6,7,3,4}};
    Arrays.sort(intervals, (o1, o2) -> {
        return o1[2] - o2[2];
    });

    2、使用Comparator.comparingInt()方法

    static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor)
    int[][] intervals = {{2,3,4,5},{2,9,7,3},{4,5,1,5},{3,7,1,2},{6,7,3,4}};
    Arrays.sort(intervals, Comparator.comparingInt(o -> o[2]));

    下面的其他方法引用:Arrays.sort() 实现二维数组排序

    展开全文
  • 技巧提示: array_keys($array) //返回所有键名 ...1. PHP二维数组去重复项函数  PHP数组去除重复项有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不
  • 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样...php /** * 二维数组根据某个字段排序 * 功能:按照用户的年龄倒序排序 * @author ruxing.li */ header(‘Content-Type:text/html;Charset=

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,992
精华内容 58,396
热门标签
关键字:

怎么将二维数组排序