Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как на си шарп реализовать метод сортировки пузырьком?

Волк Чёрный Ученик (23), закрыт 2 месяца назад
Лучший ответ
Ксения Райт Гений (93493) 2 месяца назад
Проще простого! Вот пример рандомного массива длины n с целыми элементами из промежутка [a;b], упорядоченного по возрастанию:
 using System;  
namespace New_Project
{ class Program
{ public static void Main()
{ int a, b, c, i, j = 0, n;
Console.Write("a b n: ");
var s = Console.ReadLine().Split();
a = int.Parse(s[0]);
b = int.Parse(s[1]);
c = b + 1 - a;
n = int.Parse(s[2]);
Console.WriteLine("Исходный массив:");
Random rnd = new Random();
int [] A = new int [n];
for (i = 0; i < n; i++)
{
++j;
A[i] = a + rnd.Next() % c;
Console.Write("{0,6:d}", A[i]);
if (j == 10) { j = 0; Console.WriteLine(); }
}
if (j > 0) Console.WriteLine();
Console.WriteLine("Отсортированный массив:");
for (i = 1; i < n; ++i)
for (j = n - 1; j >= i; --j)
if (A[j - 1] > A[j])
{ a = A[j - 1]; A[j - 1] = A[j]; A[j] = a; }
j = 0;
for (i = 0; i < n; i++)
{
++j;
Console.Write("{0,6:d}", A[i]);
if (j == 10) { j = 0; Console.WriteLine(); }
}
if (j > 0) Console.WriteLine();
}
}
}
Проверяйте и смотрите что можно упростить или сделать по другому!
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (438469) 2 месяца назад
Если по уму, то вот так:

 public static void BubbleSort(IList a) where T : IComparable  
{
bool Swapped = true;
int n = 1;
while (Swapped)
{
Swapped = false;
for (int i = 0; i < a.Count - n; i++)
if (a[i].CompareTo(a[i + 1]) > 0)
{
(a[i], a[i + 1]) = (a[i + 1], a[i]);
Swapped = true;
}
n++;
}
}

Хотя "по уму" никто изобретать такой древний велосипед, конечно, не будет, особенно при наличии встроенных методов сортировки.
Похожие вопросы