c# 二维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的某个元素
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排序和计时的更多相关文章
- PHP二维数据排序,二维数据模糊查询
一.因为项目中的一个报表需要合并三个表的数据,所以分表查询再合并数据,利用PHP数组函数进行排序,搜索.三表合并后的数组结构如下: Array ( [0] => Array ( [history ...
- php 二维数据排序 排行榜
php 二维数据排序 排行榜 $rateCount = array(); foreach($groupUsers as $user){ $rateCount[] = $user['rate']; } ...
- php对二维数据排序
对于一维数组排序比较简单,像使用sort(),asort(),arsort()等函数进行排序,但是对于二维数组比较麻烦,所有借鉴网上的总结了一下 // 对二维数组进行指定key排序 $arr 二维数组 ...
- PHP一维数组和二维数字排序整理
<?php /** 一维数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组进行排序 ksort() - 根据键,以升 ...
- 稳定排序nlogn之归并排序_一维,二维
稳定排序nlogn之归并排序_一维,二维 稳定排序:排序时间稳定的排序 稳定排序包括:归并排序(nlogn),基数排序[设待排序列为n个记录,d个关键码,关键码的取值范围为radix,则进行链式基数排 ...
- PHP 二维数组根据某个字段排序
二维数组根据某个字段排序有两种办法,一种是通过sort自己写代码,一种是直接用array_multisort排序函数 一. 手写arraysort PHP的一维数组排序函数: sort 对数组的值按 ...
- PHP开发笔记:二维数组根据某一项来进行排序
比如说我们现在有一个二维数组: $arr = array( ‘d' => array(‘id' => 5, ‘name' => 1, ‘age' => 7), ‘b' => ...
- PHP array_multisort() 函数详解 及 二维数组排序(模拟数据表记录按字段排序)
一.先看最简单的情况. 有两个数组: $arr1 = array(1, 9, 5); $arr2 = array(6, 2, 4); array_multisort($arr1, $arr2); pr ...
- php对二维数组进行相关操作(排序、转换、去空白等)
php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04 这篇文章主要介绍了php对二维数组进行相关操作,包括php对 ...
随机推荐
- Django1.0和2.0中的rest_framework的序列化组件之超链接字段的处理
大家看到这个标题是不是有点懵逼,其实我就是想要一个这样的效果 比如我get一条书籍的数据,在一对多的字段中我们显示一个url,看起来是不是很绚! 下面我们就来实现这么一个东西 首先我们一对多字段中的一 ...
- Django中的forms一些小点
1.默认情况下,chrom浏览器会提前对我们的form表单中的数据做校验,如果不想让chrom浏览器给我们做校验,则只需要按照下面的方式处理就可以了 <form method="pos ...
- ABAP开发需要养成的习惯—处理规范,日期,sort,改结构
sELECT select之后不要急着处理,最多用下sort还有delete adjacent,不用sy-subrc判断之后loop操作,要注意处理逻辑. sort一个好处是为了后面read tabl ...
- mysql乐观锁总结和实践(一)
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持 ...
- 弹出PopupWindow背景变暗的实现
弹出PopuoWindow后 代码里设置的是PopupWindow默认获取焦点 所以PopupWindow显示的时候其它控件点击是没有反应的 用到的方法是 pwMyPopWindow.setFocus ...
- 2017.9.26JQuery源码解析一 架构与依赖
jq1.0: css选择符 事件处理 ajax交互 1.2.3: 引入数据缓存,解决循环引用与大数据保存问题 1.3. : 使用全新的选择器引擎sizzle,在各个浏览器下全面超越其他同类js ...
- git add 文件夹
1. 本地新建好文件夹,在文件夹里新建*.md 2. 切换到文件夹父目录 3. git add 文件夹名 4. git commit 5. git push
- sqlserver window身份验证时切换账户的快捷键
sqlserver window身份验证时切换账户的快捷键:ctrl+alt_del
- linq join用法
单条件: var query = from person in people join pet in pets on person equals pet.Owner select new { Owne ...
- IIS 7.5 上传文件大小限制
上传插件:uploadify IIS版本:7.5 描述: 从IIS6升级到IIS7.5以后,网站上传文件大小被限制了,在Chrome下提示:ERR_CONNECTION_RESET,网上的各种方法都试 ...