Exemplu concret:
Consider un array cu 5 elemente: (6 1 4 2 10)
La fiecare pas, elementele scrise cu caractere aldine sunt comparate.
Pasul 1:
( 6 1 4 2 10 ) ( 1 6 4 2 10 ) Aici algoritmul compara primele doua elemente si face schimbarea.
( 1 6 4 2 10 ) ( 1 4 6 2 10 )
( 1 4 6 2 10 ) ( 1 4 2 6 10 )
( 1 4 2 6 10 ) ( 1 4 2 6 10 ) Acum, avand in vedere ca aceste elemente sunt in ordine nu face schimbarea.
Pasul 2:
( 1 4 2 6 10 ) ( 1 4 2 6 10 )
( 1 4 2 6 10 ) ( 1 2 4 6 10 )
( 1 2 4 6 10 ) ( 1 2 4 6 10 )
( 1 2 4 6 10 ) ( 1 2 4 6 10 )
Acum, matricea este sortata, dar algoritmul nostru nu stie daca aceasta sortare este finalizata.
Pasul3:
( 1 2 4 6 10 ) ( 1 2 4 6 10 )
( 1 2 4 6 10 ) ( 1 2 4 6 10 )
( 1 2 4 6 10 ) ( 1 2 4 6 10 )
( 1 2 4 6 10 ) ( 1 2 4 6 10 )
Algoritmul scris in C#:
using System;
namespace Sortare
{
class Program
{
public static void bubbleSort(int[] nr)
{
int i, j, temp;
int sizev = nr.Length;
for (i = ( sizev - 1); i >= 0; i--)
{
for (j = 1; j <= i; j++)
{
if (nr[j - 1] > nr[j])
{
temp = nr[j - 1];
nr[j - 1] = nr[j];
nr[j] = temp;
}
}
}
}
static void Main(string[] args)
{
Random r = new Random();
int[] x = new int[100000];
for (int i = 0; i < x.Length; i++)
x[i] = r.Next(0, 1000);
bubbleSort(x);
for (int i = 0; i < x.Length; i++)
Console.Write("{0} ", x[i]);
}
}
Buna ziua
RăspundețiȘtergereEste o greseala in aceste linii de cod:
Console. Write("{0} ", x[i]);
}
}
Puteti corecta sa am programul corect?
Acum am vazut si eu mesajul tau.
ȘtergereIn Main() modifica linia
int[] x = new int[100000];
cu
int[] x = new int[1000];
iar dupa Console.Write("{0} ", x[i]);
pune Console.ReadLine();
Vei vedea ca merge :)