vineri, 6 martie 2009

Algoritmi de sortare I- Bubble Sort

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]);
}
}

2 comentarii:

  1. Buna ziua


    Este o greseala in aceste linii de cod:
    Console. Write("{0} ", x[i]);
    }
    }


    Puteti corecta sa am programul corect?

    RăspundețiȘtergere
    Răspunsuri
    1. Acum am vazut si eu mesajul tau.

      In 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 :)

      Ștergere