Сортировка пузырьком C#
- Пользователь вводит длинну массива, программа создаёт массив типа int с указанной длинной, программа заполняет его случайными символами
- Программа выводит массив, который получился, в коносоль до сортировки
- Программа вызывает метод сортировки, подавая в него наш массив.
- Программа снова выводит обновлённый массив, уже в отсортированном виде. Готовые методы типа Array.Sort использовать запрещено.
код :
using System;
using System.IO;
using System.Linq; // Библиотека чтобы работал системный буфер обмена
using System.Text;
using System.Windows.Forms;
namespace ConsoleApp9
{
internal class Program
{
[STAThread] // чтобы работал системный буфер обмена
public static void Main(string[] args)
{
Start();
WriteColorText("Введи длину массива: ", ConsoleColor.Yellow);
int dlina = int.Parse(Console.ReadLine());
Console.WriteLine();
int[] bubble = new int[dlina];
Random random = new Random();
for (int i = 0; i < bubble.Length; i++)
{
bubble[i] = random.Next(15);
}
// Вывожу созданый оригинальный масив с рандомными элементами и длиной которую указал пользователь
for (int i = 0; i < bubble.Length; i++)
{
WriteColorText2($"До сортировки: элемент №{i} = {bubble[i]}", ConsoleColor.Yellow);
}
WriteColorText2("_______________________________________\n", ConsoleColor.White);
int[] result = Bubblsort(bubble, dlina); // присваиваю значение то что возрощает мой метод
for (int i = 0;i < result.Length; i++)
{
WriteColorText2($"После сортировки: Элемент№{i} = {result[i]}", ConsoleColor.White);
// вывожу уже отсортированый массив
}
WriteColorText(Console.ReadLine(), ConsoleColor.Magenta);
}
public static void Start()
{
Console.OutputEncoding = Encoding.UTF8;
Console.InputEncoding = Encoding.GetEncoding(1251);
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine($" \\_ *| * _/");
Console.WriteLine($" \\_ - _/");
Console.ForegroundColor = ConsoleColor.DarkYellow;
Console.WriteLine($" \\_Wise Coding™_/");
Console.ForegroundColor = ConsoleColor.White;
}
public static void WriteColorText(string a, ConsoleColor cvet) // метод в который можно подавать цвет и текст
{
Console.ForegroundColor = cvet;
Console.Write(a);
}
public static void WriteColorText2(string a, ConsoleColor cvet) // метод в который можно подавать цвет и текст
{
Console.ForegroundColor = cvet;
Console.WriteLine(a);
}
public static int[] Bubblsort(int[] bubble, int dlina)
{
for (int i = 0; i < bubble.Length; i++)
{
for (int j = i + 1; j < bubble.Length; j++)
{
if (bubble[i] > bubble[j]) // если первий елемент больше второго то меняю местами
{
int swap = bubble[i];
bubble[i] = bubble[j];
bubble[i] = swap;
}
}
}
return bubble; // вернёт значение сортированого массива
}
}
}
P.S У меня выводит 2 раза один и тот же массив , подскажите как исправить

Ответы (1 шт):
Автор решения: iiKuzmychov
→ Ссылка
Вас не смущает этот код?
int swap = bubble[i];
bubble[i] = bubble[j];
bubble[i] = swap;
// ^
В последней строчке явно должно быть не [i], а [j].
Ну и в свежем C# этот код можно заменить на куда более простой:
(bubble[i], bubble[j]) = (bubble[j], bubble[i]);