二维数组sort排序

和副本任务完全无关的奇怪感慨:

完全搞不懂我为什么会在搞图论的时候学这种奇怪东西,需要的时候不会,不需要的时候又莫名增加了奇怪的技能点.

之前的假期规划在十多天的放飞自我中彻底泡汤,简单的图论都一点不会,sad.

在想要不要把分治 贪心 递推 哈希 大根小根堆再看一遍,我似乎又忘了.

刘神刷题比我快了,我应该好好学习不能这么浪.

大概我永远没有大神们的智商优势吧,所以要更努力.

毕竟没有贯彻意志的希望一无所有,所以努力成为hal一样的绿灯侠吧少年[bushi].

好了回归正题.

要想知道二维数组排序首先要知道二维数组的储存方式;

比如说 int wtf[2][2];//↓下面的四个口代表一个int储存位[虽然很不标准但是大概能理解吧]

口口口口 口口口口 口口口口 口口口口

↑wtf[0][0]           ↑wtf[0][1]          ↑wtf[1][0]        ↑wtf[1][1]

所以排序的时候就是先看行再看列

[就是把下面一行一行的按顺序移到后面,一个wtf[a][b]和一个wtf[a*b]从某种意义上说是差不多的;

我个人是这么看的,所以你也可以觉得它是先看列再看行,不过我更希望内存是横着排的...虽然这只是个比方]

然后我们开始学习怎么排序;

假如我们有一个wtf[a][b]的int数组,我想把wtf[x][0]到wtf[x][b-1]从小到大排序(0<=x<=a-1)

c++代码如下

for(int i=0;i<=a-1;i++){
    sort((int*)wtf+b*i,(int*)wtf+b*i+b);
}

至于其他从大到小或者什么神奇的排序,自己定义一个mycmp放后面好了,就和普通排序一样;

似乎还有greater<int>()这种神奇的东西可以放在后面.

嗯至于怎么把wtf[0][x]到wtf[a-1][x]排序,我不会...

李二狗的数组课堂就到这里,虽然并没有同学会看这么神经病的东西,但是还是感谢您的观看,比心.

时间: 2024-11-09 23:21:11

二维数组sort排序的相关文章

二维数组的排序

1 result =[['7250','1'],['7510','2'],['7759','0'],['6523','33']] 2 3 copy_result = [] 4 5 for item in result: 6 copy_result.append([int(item[0]),item[1]]) 7 8 print result 9 # output: 10 # [['7250', '1'], ['7510', '2'], ['7759', '0'], ['6523', '33']]

php二维数组自定义排序

PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义. 以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义: function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type == 'asc'){

php 二维数组自定义排序

有时候需要对一个二维数组进行排序,自定义对应的排序规则,比如对一个班级里面的同学,先按身高降序排序,身高相同的,再按体重降序排序... 代码: <?php $array = [ ["id" => "1", "name" => "a", "age" => "19",], ["id" => "2", "name&

二维数组元素排序

<script type="text/javascript">//--------------------------1数值排序-------------------------var arr1=[[22,33,44],[1,0,6,2],[33,10],[10,5]];arr1.sort(function(x,y){ return x[1] -y[1];//按照二维数组arr1中每个数组元素(数组)的第二个元素升序排列 });console.log(arr1); //--

C# 实现二维数组的排序算法(代码)

class Order { /// <summary> /// 对二维数组排序 /// </summary> /// <param name="values">排序的二维数组</param> /// <param name="orderColumnsIndexs">排序根据的列的索引号数组</param> /// <param name="type">排序的类型,

qsort对二维数组的排序

转自 :http://blog.csdn.net/slience_perseverance/article/details/6695048 qsort对二维数组排序与对以为数组排序是一样的几乎没有什么差别,而且后来想想定义一个二维数组所占的空间与定义一个机构体所占的空间是一样 的,所以没有必要用多维数组,直接用结构体数组就行. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math

php对二维数组进行相关操作(排序、转换、去空白等)

php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04 这篇文章主要介绍了php对二维数组进行相关操作,包括php对二维数组排序.转换.去空白,以及去重复值等,感兴趣的小伙伴们可以参考一下 技巧提示: ? 1 2 3 4 5 6 7 8 9 array_keys($array) //返回所有键名   array_values($array) //返回所有键值    $result=array_reverse($inp

二维数组快速排序(sort+qsort)

二维数组快速排序 qsort是c中快速排序,如果简单的一维数组排序,想必大家的懂.现在看一下二维数组的排序,虽然可以冒泡但是太费时间了,我们这里使用qsort来快速排序,看代码应该看得懂吧. 代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 struct node 4 { 5 int x,y; 6 }a[10005]; 7 int cmp(const void *a,const void *b) //要转化为结构体类型 8 { 9 str

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体