精华内容
下载资源
问答
  • 二维数组排序.vi
  • php二维数组排序详解

    2020-10-26 17:50:49
    二维数组排序排序在php中也提供了一个函数array_multisort就可以直接排序了,下面我来介绍除了全使用array_multisort 对数组进行排序我们还写了一些自定二维数组排序方法
  • //借助Arrays的方法对二维数组进行排序。 //参考思路: //先把二维数组使用System.arraycopy进行数组复制到一个一维数组 //然后使用sort进行排序 //最后再复制回到二维数组。 import java.util.Arrays; public ...
    package cn.sxt.Test;
    //首先定义一个5X8的二维数组,然后使用随机数填充满。
    //借助Arrays的方法对二维数组进行排序。
    //参考思路:
    //先把二维数组使用System.arraycopy进行数组复制到一个一维数组
    //然后使用sort进行排序
    //最后再复制回到二维数组。
    
    import java.util.Arrays;
    
    public class array {
        public static void main(String[] args) {
        /*
        首先定义一个一维数组长度40和二维数组5*8
        */
        	int[][] a = new int[5][8];
        	int[] b = new int[40];
        /*
        随机数存入二维数组中
        */	
          for (int i = 0;  i < 5; i++) {
        	  for (int j = 0; j < 8;j++) {
    			a[i][j] = (int)(Math.random()*100);	
    		}	
    	}
    	/*
    	增强for循环遍历二维数组a。array.toString()方法查看
    	*/
          for(int[] temp : a)
          {
        	  System.out.println(Arrays.toString(temp));
          }
          /*
          二维数组a 5行8列,用for循环把各行的元素复制到把数组中
          */
          for (int i = 0; i < 5; i++) {
          /*复制数组: System.arraycopy(源数组, 原数组开始复制下标, 目标数组, 目标数组粘贴下标, 复制长度)*/
        	  System.arraycopy(a[i], 0, b, i * 8, 8);
    	}
          System.out.println(Arrays.toString(b));
          //对一维数组b排序
          Arrays.sort(b);
          System.out.println(Arrays.toString(b));
          //把排序好的一位数组重新复制回二维数组中
          for(int i = 0; i < 5; i++)
          {
        	  System.arraycopy(b, i * 8, a[i], 0, 8);
          }
          //打印排序好的二维数组
          for(int[] temp : a)
          {
        	  System.out.println(Arrays.toString(temp));
          }  
        }
    }
    
    展开全文
  • 因项目需要,要把两个一维的数组一一对应地转化为二维的,之后,在对合成的二维数组进行排序,从而实现一一对应的排序 合并函数: //合并一维数组为二维数组 function array_hebing(arr1,arr2){ var result = ...

    因项目需要,要把两个一维的数组一一对应地转化为二维的,之后,在对合成的二维数组进行排序,从而实现一一对应的排序

    合并函数:

    //合并一维数组为二维数组
        function array_hebing(arr1,arr2){
        	var result = new Array();
            for(var i=0;i<arr1.length;i++){
            	result.push([arr1[i],arr2[i]]);
            }
            return result;
        }


    合并后排序:(这个我还理解不好原理,==)

    //二维数组排序
    							result_temp.sort(function(x, y){
     								 	return (x[0]-y[0]);
    								});	

    var result_temp=array_hebing(middle_count,middle_school);
    							//二维数组排序
    							result_temp.sort(function(x, y){
     								 	return (x[0]-y[0]);
    								});	

    至此,我需要的数组就处理好啦~


    参考大神的:感谢

    展开全文
  • Java二维数组排序

    万次阅读 2019-06-29 15:46:12
    Java二维数组排序

    Java二维数组排序

    Java二维数组排序

    关于Java二维数组的排序方法之一是把二维数组放进一维数组然后试用版Arrays.sort();进行排序,排序结束后再把一维数组内容重新写入二维数组内,代码实现如下:

    为了方便,我在这里使用了随机数生成方法Math.random()进行随机数生成,依次写入二维数组内:

    import java.util.*;
    public class P11{
    	public static void main(String[] args){
    		int[][] arr=new int[5][5];
    		for(int i=0;i<arr.length;i++){
    			for (int j=0;j<arr[i].length;j++){//生成随机数【100-1000】
    				arr[i][j]=(int)(Math.random()*(1000-100+1)+100);
    			}
    		}
    		for(int i=0;i<arr.length;i++){
    			System.out.println(Arrays.toString(arr[i]));
    		}
    		System.out.println();
    		for(int i=0;i<arr.length;i++){
    			Arrays.sort(arr[i]);
    		}
    		for(int i=0;i<arr.length;i++){
    			System.out.println(Arrays.toString(arr[i]));
    		}
    		int[] temp=new int[25];
    		int k=0;
    		for(int i=0;i<arr.length;i++){
    			for(int j=0;j<arr[i].length;j++){
    				temp[k]=arr[i][j];
    				k++;
    			}
    		}
    		System.out.println();
    		for(int x:temp){
    			System.out.print(x+" ");
    		}
    		Arrays.sort(temp);
    		System.out.println();
    		for(int x:temp){
    			System.out.print(x+" ");
    		}
    		k=-1;
    		for(int i=0;i<arr.length;i++){
    			for(int j=0;j<arr[i].length;j++){
    				k++;
    				arr[i][j]=temp[k];
    			}
    		}
    		System.out.println();
    		System.out.println();
    		for(int i=0;i<arr.length;i++){
    			System.out.println(Arrays.toString(arr[i]));
    		}
    	}
    }
    

    因为使用了随机数生成的数组内容,所以每次运行数组内容都不尽相同,本次运行结果如下:

    排序结果

    展开全文
  • 本文实例讲述了C#实现的二维数组排序算法。分享给大家供大家参考,具体如下: class Order { /// /// 对二维数组排序 /// /// 排序的二维数组 /// 排序根据的列的索引号数组 /// 排序的类型,1代表降序,0...
  • php二维数组排序函数,默认自然排序,即sort排序。这里可以指定按二维数组中的某个值进行多种方法排序,具体看下面的程序注释。复制代码 代码如下:/**   * @function 二维数组自然排序   * @author ...
  • PHP一维数组的排序可以用sort(),asort(),arsort()等函数,PHP二维数组排序需要自定义。
  • 主要介绍了PHP二维数组排序简单实现方法,涉及PHP针对数组的遍历与排序操作常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • php二维数组排序

    2015-10-03 12:02:49
    这是php实现的二维数组排序的相关代码,有不同的实现方法
  • 二维数组排序

    2013-03-23 12:02:24
    应用c++库函数 qsort实现二维数组排序,即 举例:排序前:{{1,1,0} {3,0,2}, {1,1,1}, {1,2,0}} 排序后:{{1,1,0}, {1,1,1}, {1,2,0}, {3,0,2}}
  • 主要介绍了C#实现对二维数组排序的方法,实例分析了C#数组遍历与排序的相关技巧,需要的朋友可以参考下
  • /**作用: 二维数组排序函数,支持多键名排序 * 返回: 排序好的数组 * 使用: array_msort(数组,需要排序的键名,排序方式); * 例子: array_msort($cflist,"chapter_orderid","SORT_ASC"); * array_msort($arr,"name...
  • VB二维数组排序源码

    2014-04-24 21:07:35
    VB二维数组排序源码
  • 二维数组在PHP开发中经常遇到,但是他的排序就不如一维数组那样用内置函数来的方便了,二维数组的排序需要我们自己写函数处理了,这里UncleToo给大家分享一个PHP二维数组排序的函数: 代码: 复制代码 代码如下: ...
  • 给你一个二维数组,请排序到一个一维数组, int* MySort(int** source, int* len,int n, int* output) 思路 结果一维数组指针返回是一种链式编程思想,例如a = sort(a,sort(b,c))这样。然后形参给了一个...

    题目描述

    给你一个二维数组,请将它排序到一个一维数组,
    int* MySort(int** source, int* len,int n, int* output)

    思路

    将结果一维数组指针返回是一种链式编程思想,例如a = sort(a,sort(b,c))这样。然后形参给了一个指向一个指针的数组,所以这个二维数组在内存中不是连续分配的,然后还给你一个每行的长度。
    - 我先想到将每一行快排,然后将每一行两两合并,就像mergesort样,但是这并没有降低算法的时间复杂度,注意这个解法的算法复杂度一般不会超过nlgn,要不然将一个一维数组切成几段就可以超过nlgn,干嘛还要快排是吧。
    所以我认为这个就是一个变种的考排序算法的题目,顺便检查你的C++编程基本功。在写完后,面试官可能会问一下八种排序算法的优劣。
    注意这里的output要在使用MySort函数前分配好足够的地址空间,或者使用全局变量也行。我这里给出一个使用冒泡排序的写法。当然你还可以选择其它的nlgn排序算法。注意,使用排序算法的时候一定结合具体条件来选择合适的算法,这个可以和面试官讲清楚。

    #include <iostream>
    using namespace std;
    
    int res1[1000];
    
    int* MySort(int** source, int* len,int n, int* output)
    {
        if(source == nullptr || *source == nullptr || len == nullptr || n < 1 || output == nullptr)
            return nullptr;
    
        int totalLen = 0;
        for(int i = 0; i < n; ++i)
            totalLen += len[i];
    
        //output = new int[totalLen];   这是错误的,把地址赋给了一个局部变量
        int* res  = output;
        int count = 0;
    
        for(int i = 0; i < n; ++i)
            for(int j = 0; j < len[i]; ++j)
            {
                output[count++] = *(*(source+i)+j);
            }
    
        for(int i = 0; i < totalLen - 1; ++i)
        {
            for(int j = 0; j < totalLen - i - 1; ++j)
            {
                if(output[j] > output[j+1])
                {
                    swap(output[j+1],output[j]);
                }
            }
        }
    
        return res;
    }
    
    int main()
    {
        int a[3] = {5,7 ,3};
        int b[2] = {7,3};
        int len[2] = {3,2};
        int* pa = a;
        int* pb = b;
        int* pp[2] = {pa,pb};
        //int* res1 = new int[5];
        int* res2 = nullptr;
        res2= MySort(pp, len, 2, res1);
        for(int i = 0;i < 5;++i)
        {
            cout<<"res1:"<<res1[i] << "res2:"<<res2[i]<<endl;
        }
        return 0;
    }
    

    使用各排序算法的情形

    • 插入、冒泡排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度。
      反而在这种情况下,快速排序慢了。 当n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。
    • 若待排序的记录的关键字在一个明显有限范围内时,且空间允许时用桶排序。
    • 当n较大时,关键字元素比较随机,对稳定性没要求宜用快速排序。
    • 当n较大时,关键字元素可能出现本身是有序的,对稳定性有要求时,空间允许的情况下宜用归并排序。
    • 当n较大时,关键字元素可能出现本身是有序的,对稳定性没有要求时宜用堆排序。
    • 快排在数组情况下,由于计算机内存访问局部性原理,会比归并在这方面更快,而在链表中,这种优势不再存在,
      加上归并空间复杂度变为O(1)和快排的稳定性,所以一般在链表排序中都使用归并排序。

    参考BLOG

    展开全文
  • 二维数组排序问题

    2016-11-11 14:33:37
    PHP 对于二维数组排序问题
  • 维数组排序可以使用asort、ksort等一些方法进程排序,相对来说比较简单。二维数组的排序怎么实现呢?使用array_multisort和usort可以实现
  • 主要介绍了php自定义二维数组排序函数array_orderby用法,结合实例形式分析了php针对二维数组进行排序的相关遍历、判定、排序等操作技巧,需要的朋友可以参考下
  • 本篇主要是对js二维数组排序的简单示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
  • php代码-简单二维数组排序示例
  • PHP 二维数组排序

    2014-03-22 17:48:03
    有两个方法,其中第一个...1.PHP二维数组排序函数 PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义。 以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,104
精华内容 48,841
关键字:

怎么将二维数组排序