пример написан на языке PureBasic 6.0.0
N=20000
Dim A.i(N)
For i=0 To N-1
A(i)=Random(N,0)
Next
t=ElapsedMilliseconds()
For I = 0 To N-2
For J = 0 To N-2
If A(J) > A(J+1)
P = A(J)
A(J) = A(J+1)
A(J+1) = P
EndIf
Next J
Next I
Debug ElapsedMilliseconds()-t
оператор Debug выполняет печать на экран
оператор ElapsedMilliseconds() считает время в миллисекундах,остальное думаю всё понятно..
C#
Сколько времени займет на С# выполнение этого алгоритма сортировки массива?
пузырек:
1550-1800 мс
встроенная сортировка.

C#11 ryzen 3600x
using System.Diagnostics;
Random rnd = new Random();
int N = 20000;
int[] arr = Enumerable.Range(0, N)
.Select(x => rnd.Next(0,N))
.ToArray();
Stopwatch sw = Stopwatch.StartNew();
int temp;
for (int i = 0; i < N-1; ++i)
{
for (int j = 0; j < N - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
sw.Stop();
Console.WriteLine($"{sw.ElapsedMilliseconds} ms");

встроенная сортировка.
using System.Diagnostics;
Random rnd = new Random();
int N = 20_000_000;
int[] arr = Enumerable.Range(0, N)
.Select(x => rnd.Next(0,N))
.ToArray();
Stopwatch sw = Stopwatch.StartNew();
Array.Sort(arr);
sw.Stop();
Console.WriteLine($"{sw.ElapsedMilliseconds} ms");
20М чисел за 1300-1450 мс
C#11 ryzen 3600x
Это самый ужасный пузырь из всех возможных, поэтому долго, особенно по сравнению со стандартным методом:

//
const int n = 20000;
Random r = new Random(DateTime.Now.Millisecond);
int[] a = Enumerable.Range(0, n).Select(x => r.Next(n)).ToArray();
DateTime dt = DateTime.Now;
Array.Sort(a);
TimeSpan ts = DateTime.Now - dt;
Console.WriteLine("Quicksort: {0}", ts.ToString());
a = Enumerable.Range(0, n).Select(x => r.Next(n)).ToArray();
dt = DateTime.Now;
for (int i=0; i < n - 2; i++)
for (int j = 0; j < n - 2; j++)
if (a[j] > a[j+1])
{
int p = a[j];
a[a[j]] = a[j+1];
a[j+1] = p;
}
ts = DateTime.Now - dt;
Console.WriteLine("Full bubble: {0}", ts.ToString());
Console.ReadLine();

Артем Иванов
спасибо за прогон теста, если я верно понял то время прогона 761мс,а методом быстрой сортировки 1.99мс
Артем Иванов
уточните пожалуйста версию Си,в котором вы прогоняли этот код и версию ОС на компе?
В среднем 730 мс.
Артем Иванов
спасибо,можете уточнить марку процессора,версию ОС на компе и версию Си?
Похожие вопросы
- За сколько времени можно выучить язык программирования? (JavaScript)
- За сколько времени можно выучить язык С# для создания игр ?
- Сортировка Двумерного массива C#
- Пузырьковая сортировка в С#.
- На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом
- C# Массив структур.Конструктор .Доступ к отдельным элементам массива в массиве структур.
- Задача с массивами на С#. Я Создала массив, но он просто выводит повторно то, что я ввела. Как это можно решить?
- Помогите написать программу с массивом на C#
- Массивы. Помогите в долгу не останусь
- Задача массивы c# , прошу помощи...
main.cs(11,0): error CS1525: Unexpected symbol `Random'
Compilation failed: 1 error(s), 0 warnings