using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//定义一个二维list,用来代替二维数组,这样每行的个数就可以变了
List<List<int>> array = new List<List<int>>();
//定义一个一维list,作为上面二维list的某个元素
List<int> item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array.Add(item); //下面 取出二维list的某个元素
int m = array[][];//此时的m即为50
//下面 给二维list某位置赋值
array[][] = ;
//验证某位置的值是否改变
m = array[][];
//将二维list的第0行所有元素给某个一维list
item = array[]; ////下面对二维list排序,且都是按最后一个元素排序,因为最后一个我作为遗传算法的fit值
//list排序方法一
//array.Sort( delegate(List<int> p1,List<int> p2)
// {
// return p1[3].CompareTo(p2[3]);//按最后一个元素升序
// }
// );//升序或则用下面的排序http://blog.csdn.net/jimo_lonely/article/details/51711821
//list排序方法二
array.Sort((List<int> x, List<int> y) => { return x[].CompareTo(y[]); });
//list排序方法三
List<List<int>> array1 = array.OrderBy(o => o[]).ToList();//升序 //计时
Stopwatch sw = new Stopwatch();
sw.Start();
Thread.Sleep();
sw.Stop();
Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency);
Console.ReadKey(); }
}
}

二维list代替二维数组

第一种排序最快

 using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//定义一个二维list,用来代替二维数组,这样每行的个数就可以变了
List<List<int>> array = new List<List<int>>();
//定义一个一维list,作为上面二维list的某个元素
List<int> item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array.Add(item);
List<List<int>> array1 = array;
List<List<int>> array2 = array;
List<List<int>> array3;//= array; ////下面 取出二维list的某个元素
//int m = array[1][2];//此时的m即为50
////下面 给二维list某位置赋值
//array[1][2] = 60;
////验证某位置的值是否改变
//m = array[1][2];
////将二维list的第0行所有元素给某个一维list
//item = array[0]; //计时
Stopwatch sw = new Stopwatch();
int s = ; //下面对二维list排序,且都是按最后一个元素排序,因为最后一个我作为遗传算法的fit值
//list排序方法一
sw.Start();
for (int i = ; i < s; i++)
{
array1.Sort(delegate(List<int> p1, List<int> p2)
{
return p1[].CompareTo(p2[]);//按最后一个元素升序
}
);//升序或则用下面的排序http://blog.csdn.net/jimo_lonely/article/details/51711821
sw.Stop();
}
Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency); //list排序方法二
sw.Start();
for (int i = ; i < s; i++)
{
array2.Sort((List<int> x, List<int> y) => { return x[].CompareTo(y[]); });
sw.Stop();
}
Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency); //list排序方法三
sw.Start();
for (int i = ; i < s; i++)
{
array3 = array.OrderBy(o => o[]).ToList();//升序
sw.Stop();
}
Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency); Console.ReadKey(); ////计时
//Stopwatch sw = new Stopwatch();
//sw.Start();
////Thread.Sleep(2719);
//sw.Stop();
//Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency);
//Console.ReadKey(); }
}
}

 using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
////定义一个二维list,用来代替二维数组,这样每行的个数就可以变了
//List<List<int>> array = new List<List<int>>();
////定义一个一维list,作为上面二维list的某个元素
//List<int> item = new List<int>(new int[] { 3, 4, 5, 6 });
////将上面的一维list作为一个元素放入二维list中
//array.Add(item);
////给一维list赋新值
//item = new List<int>(new int[] { 30, 40, 50, 60 });
////将上面的一维list作为一个元素放入二维list中
//array.Add(item);
////给一维list赋新值
//item = new List<int>(new int[] { 20, 40, 50, 30 });
////将上面的一维list作为一个元素放入二维list中
//array.Add(item);
//List<List<int>> array1 = array;
//List<List<int>> array2 = array;
//List<List<int>> array3;//= array; ////下面 取出二维list的某个元素
//int m = array[1][2];//此时的m即为50
////下面 给二维list某位置赋值
//array[1][2] = 60;
////验证某位置的值是否改变
//m = array[1][2];
////将二维list的第0行所有元素给某个一维list
//item = array[0]; //计时
Stopwatch sw = new Stopwatch();
int s = ; //下面对二维list排序,且都是按最后一个元素排序,因为最后一个我作为遗传算法的fit值
//list排序方法一
sw.Start();
for (int i = ; i < s; i++)
{
//定义一个二维list,用来代替二维数组,这样每行的个数就可以变了
List<List<int>> array1 = new List<List<int>>();
//定义一个一维list,作为上面二维list的某个元素
List<int> item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array1.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array1.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array1.Add(item); array1.Sort(delegate(List<int> p1, List<int> p2)
{
return p1[].CompareTo(p2[]);//按最后一个元素升序
}
);//升序或则用下面的排序http://blog.csdn.net/jimo_lonely/article/details/51711821
sw.Stop();
}
Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency); //list排序方法二
sw.Start();
for (int i = ; i < s; i++)
{
//定义一个二维list,用来代替二维数组,这样每行的个数就可以变了
List<List<int>> array2 = new List<List<int>>();
//定义一个一维list,作为上面二维list的某个元素
List<int> item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array2.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array2.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array2.Add(item);
array2.Sort((List<int> x, List<int> y) => { return x[].CompareTo(y[]); });
sw.Stop();
}
Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency); //list排序方法三
sw.Start();
for (int i = ; i < s; i++)
{
//定义一个二维list,用来代替二维数组,这样每行的个数就可以变了
List<List<int>> array3 = new List<List<int>>();
//定义一个一维list,作为上面二维list的某个元素
List<int> item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array3.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array3.Add(item);
//给一维list赋新值
item = new List<int>(new int[] { , , , });
//将上面的一维list作为一个元素放入二维list中
array3.Add(item);
array3.OrderBy(o => o[]).ToList();//升序
sw.Stop();
}
Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency); Console.ReadKey(); ////计时
//Stopwatch sw = new Stopwatch();
//sw.Start();
////Thread.Sleep(2719);//毫秒
//sw.Stop();
//Console.WriteLine(sw.ElapsedTicks / (decimal)Stopwatch.Frequency);
//Console.ReadKey(); }
}
}

还是第一种排序快

c# 二维list排序和计时的更多相关文章

  1. PHP二维数据排序,二维数据模糊查询

    一.因为项目中的一个报表需要合并三个表的数据,所以分表查询再合并数据,利用PHP数组函数进行排序,搜索.三表合并后的数组结构如下: Array ( [0] => Array ( [history ...

  2. php 二维数据排序 排行榜

    php 二维数据排序 排行榜 $rateCount = array(); foreach($groupUsers as $user){ $rateCount[] = $user['rate']; } ...

  3. php对二维数据排序

    对于一维数组排序比较简单,像使用sort(),asort(),arsort()等函数进行排序,但是对于二维数组比较麻烦,所有借鉴网上的总结了一下 // 对二维数组进行指定key排序 $arr 二维数组 ...

  4. PHP一维数组和二维数字排序整理

    <?php /** 一维数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组进行排序 ksort() - 根据键,以升 ...

  5. 稳定排序nlogn之归并排序_一维,二维

    稳定排序nlogn之归并排序_一维,二维 稳定排序:排序时间稳定的排序 稳定排序包括:归并排序(nlogn),基数排序[设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排 ...

  6. PHP 二维数组根据某个字段排序

    二维数组根据某个字段排序有两种办法,一种是通过sort自己写代码,一种是直接用array_multisort排序函数 一. 手写arraysort PHP的一维数组排序函数: sort  对数组的值按 ...

  7. PHP开发笔记:二维数组根据某一项来进行排序

    比如说我们现在有一个二维数组: $arr = array( ‘d' => array(‘id' => 5, ‘name' => 1, ‘age' => 7), ‘b' => ...

  8. PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)

    一.先看最简单的情况. 有两个数组: $arr1 = array(1, 9, 5); $arr2 = array(6, 2, 4); array_multisort($arr1, $arr2); pr ...

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

    php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04   这篇文章主要介绍了php对二维数组进行相关操作,包括php对 ...

随机推荐

  1. [Java学习]面向对象-类的继承;方法覆盖

    一.类的继承 实现方法: public Class SubClass extends SuperClass{ } 继承最基本作用: 代码重用. 继承最重要的作用: 方法可以重写. 关于类的继承: 子类 ...

  2. Inno Setup安装程序单例运行

    1.源起: KV项目下载底层升级包,老是报出升级文件占用问题,反复分析,不得其所. 今天突然发现同时启动多个升级程序实例,分析认为安装包同时被调用多次,引发实例访问文件冲突,导致此问题. 安装程序由I ...

  3. spring BeanUtils 工具实现对象之间的copy

    一般我们会开发中会遇到返回用户信息的时候,不需要返回密码或者其他参数,这时候我们需要重新定义一个VO类去除不需要的参数,将原对象copy到VO类中 使用spring的BeanUtils可以实现对象的c ...

  4. Ansible Playbook 详解

    一.playbook 的简单使用 1.创建文件实例 (1)编辑配置文件 [root@tiejiangSRC1 ~]# cd /etc/ansible/ [root@tiejiangSRC1 ansib ...

  5. linux命令学习之:tar

    tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在 ...

  6. jsplumb踩坑

    一,,关于连线器label 我们全局设置中可以用 getInstance 实例化新对象 也可以通过 importDefaults 实例化新对象 当我想要给连线器上添加标签  每个连线器上的标签都不一样 ...

  7. MVC中的七层架构

    工厂模式的七层架构 1.创建Model,实现业务实体. 2.创建IDAL,实现接口. 3.创建DAL,实现接口里的方法. 4.创建DBUtility,数据库操作类5.创建DALFactory,抽象工程 ...

  8. python 字符串 列表 字典 常用方法

    今天学习内容如下: 1.学习昨天练习题目的解题新方法 #1.使用while循环输入 1 2 3 4 5 6 8 9 10 ''' count = 0 while count < 10: coun ...

  9. 修改JEECG项目浏览器标题

    方法1: 在线修改,在平台自带的功能“系统管理”——“国际化语言” 中搜索 jeect.platform,修改显示文字重启生效. 方法2: 修改数据表t_s_muti_lang中id为"40 ...

  10. 8.Mysql数据类型选择

    8.选择合适的数据类型8.1 CHAR与VARCHAR CHAR固定长度的字符类型,char(n) 当输入长度不足n时将用空格补齐,char(n)占用n个字节,CHAR类型输出时会截断尾部的空格,即使 ...