Сортировка обменом (пузырьковая) - C#

Узнай цену своей работы

Формулировка задачи:

Ребята, помогите! Надо сделать так, чтобы программа не выполняла лишних действий. А именно чтобы элементы, которые ушли в "конец" массива не сравнивались в дальнейшем с остальными, как то так) ЧТобы доказать это, надо через консоль вывести количество выполненных сравнений. вот код программы.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Lab_4
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Сортировка обменом");
            Console.Write("Введите размер массива: ");
            int i, j, c;
            int n = Convert.ToInt32(Console.ReadLine());
            int[] array = new int[n];
            Random random = new Random();
            Console.WriteLine("Исходный массив");
            for (i = 0; i < n; i++)
            {
                array[i] = random.Next(0, 50);
                Console.Write(array[i] + " ");
            }
            Console.WriteLine();
            for (i = 0; i < n - 1; i++)
            {
                for (j = 0; j < (n-1-i); j++)
                {
                    if (array[j] > array[j+1])
                    {
                        c = array[j];
                        array[j] = array[j+1];
                        array[j+1] = c;
                    }
                }
            }
                Console.WriteLine("Отсортированный массив.");
                for (i = 0; i < n; i++)
                {
                    Console.Write(array[i] + " ");
                }
                Console.ReadKey();
            }
        }
    }

Решение задачи: «Сортировка обменом (пузырьковая)»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Lab_4
{
class Program
{
static void Main()
{
Console.WriteLine("Сортировка обменом");
Console.Write("Введите размер массива: ");
int i, j, c,;
int kolvo = 0;
int n = Convert.ToInt32(Console.ReadLine());
int[] array = new int[n];
Random random = new Random();
Console.WriteLine("Исходный массив");
for (i = 0; i < n; i++)
{
array[i] = random.Next(0, 50);
Console.Write(array[i] + " ");
}
Console.WriteLine();
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < (n-1-i); j++)
{
kolvo++; // количество сравнений
if (array[j] > array[j+1])
{
c = array[j];
array[j] = array[j+1];
array[j+1] = c;
 
}
}
}
Console.WriteLine("Отсортированный массив.");
for (i = 0; i < n; i++)
{
Console.Write(array[i] + " ");
}
 
Console.Write("количество сравнений =" + kolvo );
Console.ReadKey();
}
}
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы