Witam, mam problem mianowicie musze zrobić projekt który porównuje wykonywanych sortowań podanych wyżej w Ticksach.
glownie problem tkwi w obliczeniu sredniej po 10 wykonanych sortowaniach w Selection Sort, natomiast w Bubble Sort sortowanie wykonuje sie raz a pozniej program glupieje.
Tutaj moje programiki
Selection
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Algorytm_przez_wybor
{
class Program
{
static void Main(string[] args)
{
for (int z = 1; z < 11; z++)
{
int element;
int liczby = 10000;
Random los_liczby = new Random();
int[] posortowane = new int[liczby];
int[] do_posortowania = new int[liczby];
int[] kopia = new int[liczby];
for (int i = 0; i < liczby; i++)
{
element = los_liczby.Next(101);
do_posortowania[i] = element;
kopia[i] = element;
}
for (int t = 1; t < 11; t++)
{
for (int i = 0; i < liczby; i++)
{
posortowane[i] = do_posortowania[i];
}
for (int q = 1; q < 11; q++)
{
for (int i = 0; i < liczby; i++)
{
do_posortowania[i] = kopia[i];
}
DateTime go = DateTime.Now;
{
for (int i = 0; i < do_posortowania.Length; i++)
{
for (int j = i + 1; j < do_posortowania.Length; j++)
{
if (do_posortowania[i] >= do_posortowania[j])
{
int bufor1 = do_posortowania[i];
do_posortowania[i] = do_posortowania[j];
do_posortowania[j] = bufor1;
}
}
}
}
DateTime end = DateTime.Now;
long p = end.Ticks - go.Ticks;
Console.WriteLine("Czas wykonywania algorytmu przez wybór to: {0}", p);
}
}
Console.ReadKey();
}
}
}
}
Bubble
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Algorytm_Bubble
{
class Program
{
static void Main(string[] args)
{
for (int z = 1; z < 11; z++)
{
int bufor;
bool posortowane;
int zakres, liczba;
string liczba1 = "nic";
Random randomizer = new Random();
while (!Int32.TryParse(liczba1, out zakres))
{
Console.Write("Podaj ilość liczb do posortowania: ");
liczba1 = Console.ReadLine();
}
for (int t = 1; t < 11; t++)
{
int[] tab = new int[zakres];
Console.WriteLine("");
for (int i = 0; i < zakres; i++)
{
liczba = randomizer.Next(101);
tab[i] = liczba;
//Console.Write(tab[i] + " ");
}
Console.WriteLine("");
DateTime go = DateTime.Now;
for (int i = 0; i < zakres - 1; i++)
{
posortowane = true;
for (int j = 0; j < zakres - 1; j++)
{
if (tab[j] > tab[j + 1])
{
bufor = tab[j];
tab[j] = tab[j + 1];
tab[j + 1] = bufor;
posortowane = false;
}
}
if (posortowane) break;
DateTime end = DateTime.Now;
long p = end.Ticks - go.Ticks;
Console.WriteLine("Czas wykonywania Bubble sort to: {0}", p);
//Console.WriteLine();
//Console.WriteLine("Krok[{0}]", i + 1);
for (int k = 0; k < zakres; k++)
{
//Console.Write(tab[k] + " ");
}
}
//Console.WriteLine("\n");
//Console.Write("Po posortowaniu: ");
for (int i = 0; i < zakres; i++)
{
//Console.Write(tab[i] + " ");
}
Console.Read();
}
}
}
}
}
Z góry dziekuje za pomoc
PS. Programy nie maja wyswietlac tablic do posortowania ani po posortowaniu, wystarcza srednie czasy ich wykonywania.