Файл:Array List LinkedList Queue (C sharp).svg
Материал из Википедии — свободной энциклопедии
Перейти к навигации
Перейти к поиску
Размер этого PNG-превью для исходного SVG-файла: 800 × 558 пкс. Другие разрешения: 320 × 223 пкс | 640 × 447 пкс | 1024 × 715 пкс | 1280 × 893 пкс | 2560 × 1787 пкс | 1000 × 698 пкс.
Исходный файл (SVG-файл, номинально 1000 × 698 пкс, размер файла: 514 КБ)
Этот файл находится на Викискладе. Сведения о нём показаны ниже.
Викисклад — централизованное хранилище для свободных файлов, используемых в проектах Викимедиа.
Сообщить об ошибке с файлом |
Краткое описание
ОписаниеArray List LinkedList Queue (C sharp).svg |
English: Processing time of double[](System.Array), System.Collections.Generic.List<double>, System.Collections.Generic.LinkedList<double>, System.Collections.Generic.Queue<double> on .NET Framework 4.0 with C#. See also #code.
日本語: .NET Framework 4.0のC#での、double[](System.Array), System.Collections.Generic.List<double>, System.Collections.Generic.LinkedList<double>, System.Collections.Generic.Queue<double>の処理時間の比較。コードも参照。 |
Дата | |
Источник | Собственная работа |
Автор | aokomoriuta(青子守歌) |
Лицензирование
Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующих лицензий:
Этот файл доступен на условиях лицензий Creative Commons Attribution-Share Alike 3.0 Unported, 2.5 Generic, 2.0 Generic и 1.0 Generic.
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
This file is licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license. | |
|
Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями GNU Free Documentation License версии 1.2 или более поздней, опубликованной Фондом свободного программного обеспечения, без неизменяемых разделов, без текстов, помещаемых на первой и последней обложке. Копия лицензии включена в раздел, озаглавленный GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
Вы можете выбрать любую из этих лицензий.
code
using System;
using System.Collections.Generic;
namespace LWisteria.List
{
/// <summary>
/// Listの比較をするメインクラス
/// </summary>
static class ListMain
{
/// <summary>
/// エントリーポイント
/// </summary>
/// <returns></returns>
static int Main()
{
// ストップウォッチを生成
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
// 最大要素数
int maxN = 1000000;
Console.WriteLine("#,Array,List,LinkedList,Queue");
// 要素数を2倍ずつに増やしていく
for(double m = 10; m < maxN; m *= new System.Random().NextDouble()/2 + 1)
{
// intにキャスト
int n = (int)m;
Console.Write("{0},", n);
// ストップウォッチ開始
stopwatch.Start();
// Listを生成
double[] array = new double[n];
// nまで
for(int i = 0; i < n; i++)
{
// √を計算して追加
array[i] = System.Math.Sqrt(i);
}
// 合計値を初期化して、全要素について
double sumArray = 0;
foreach(double value in array)
{
// 合計する
sumArray += value;
}
// ストップウォッチ停止
stopwatch.Stop();
// 結果出力
Console.Write("{0},", stopwatch.ElapsedTicks);
stopwatch.Reset();
/*****************************************************/
// ストップウォッチ開始
stopwatch.Start();
// Listを生成
List<double> list = new List<double>();
// nまで
for(int i = 0; i < n; i++)
{
// √を計算して追加
list.Add(System.Math.Sqrt(i));
}
// 合計値を初期化して、全要素について
double sumList = 0;
foreach(double value in list)
{
// 合計する
sumList += value;
}
// ストップウォッチ停止
stopwatch.Stop();
// 結果出力
Console.Write("{0},", stopwatch.ElapsedTicks);
stopwatch.Reset();
/*****************************************************/
// ストップウォッチ開始
stopwatch.Start();
// LinkedListを生成
LinkedList<double> linkedList = new LinkedList<double>();
// nまで
for(int i = 0; i < n; i++)
{
// √を計算して追加
linkedList.AddLast(System.Math.Sqrt(i));
}
// 合計値を初期化して、全要素について
double sumLinkedList = 0;
foreach(double value in linkedList)
{
// 合計する
sumLinkedList += value;
}
// ストップウォッチ停止
stopwatch.Stop();
// 結果出力
Console.Write("{0},", stopwatch.ElapsedTicks);
stopwatch.Reset();
/*****************************************************/
// ストップウォッチ開始
stopwatch.Start();
// Queueを生成
Queue<double> queue = new Queue<double>();
// nまで
for(int i = 0; i < n; i++)
{
// √を計算して追加
queue.Enqueue(System.Math.Sqrt(i));
}
// 合計値を初期化して、全要素について
double sumQueue = 0;
foreach(double value in queue)
{
// 合計する
sumQueue += value;
}
// ストップウォッチ停止
stopwatch.Stop();
// 結果出力
Console.Write("{0},", stopwatch.ElapsedTicks);
stopwatch.Reset();
/*****************************************************/
Console.WriteLine("{0}", sumArray == sumList && sumList == sumLinkedList && sumLinkedList == sumQueue);
}
// 終了コードを返す
return System.Environment.ExitCode;
}
}
}
[Hide]
Элементы, изображённые на этом файле
изображённый объект
24 февраля 2011
image/svg+xml
e63bf403f66fd1df7a6d8b16b56521eb5739fbe6
526 727 байт
698 пиксель
1000 пиксель
История файла
Нажмите на дату/время, чтобы посмотреть файл, который был загружен в тот момент.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 05:28, 24 февраля 2011 | 1000 × 698 (514 КБ) | 青子守歌 | bug fix | |
15:10, 23 февраля 2011 | 442 × 306 (121 КБ) | 青子守歌 | == {{int:filedesc}} == {{subst:User:青子守歌/own work|Figures| |en = Processing time of double[](System.Array), System.Collections.Generic.List<double>, System.Collections.Generic.LinkedList<double>, System.Collections.Generic.Queue<double> |
Использование файла
Нет страниц, использующих этот файл.