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对 ...
随机推荐
- ubuntu系列-安装jdk以及eclipse(for C++)
1.安装jdk eclipse是使用java语言开发的,一个java应用程序的运行要在java虚拟机下.在没有安装jdk的前提下,即使在ubuntu上安装了eclipse也不能使用. (1)首先在官网 ...
- layui禁用侧边导航栏点击事件
layui是一款优秀的前端模块化css框架,作者是贤心 —— 国内的一位前端大佬. 我用layui做过两个完整的项目,对她的感觉就是,这货非常适合做后台管理界面,且基于jquery,很容易上手.当然, ...
- RecyclerView的点击事件添加-------接口回调的形式添加
package com.example.recyclerviewdemo; import android.support.v7.widget.RecyclerView; import android. ...
- cherry-pick 命令
拣选会提取某次提交的补丁,之后尝试将其重新应用到当前分支上. 这种方式在你只想引入特性分支中的某个提交时很有用. 假设你的项目提交历史如下: 如果你希望将提交 e43a6 拉取到 master 分支, ...
- mysql命令行导入结构化数据
数据样本 103252765-|--|-stephanie_mt@hotmail.com-|-o/35+nGaNEU=-|-ion|-- 其中|为分隔符,每行的换行符\n mysql -uroot M ...
- Windows下adobe Reader中pdf字体helvetica被替换为ArialMT
笔者最近java项目中用itext-2.1.7导出pdf,使用了Helvetica,这个字体是内置的字体,本地Adobe Reader版本9.0 导出的文字是img.nur.cn实际效果 查看了pdf ...
- js document.load 和 document.ready 区别
document.ready和onload的区别——JavaScript文档加载完成事件 页面加载完成有两种事件 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件) 二是onloa ...
- Java中重写与重载的区别
方法重载:关键字overload,方法名和方法的返回类型都相同,方法参数个数和类型不一样方法重写:也叫方法覆盖,关键字override,相对于类继承而言,重写的方法名,返回类型,参数个数,参数类型都要 ...
- PAT 甲级 1019 General Palindromic Number(20)(测试点分析)
1019 General Palindromic Number(20 分) A number that will be the same when it is written forwards or ...
- Android.HowToDesignPluginArchitectureInAndroidApp
There is a tools called "dx", this tool can transfer Java Binary Code into Android Dalvik ...