Метод «пузырька». До середины - по возрастанию, после – по убыванию C#
Задания отсортировать одномерный массив методом "пузырька", используя функции, приэтом нельзя использовать стандартные функции обработки массивов . Язык С# Моя задумка такая: отсортировать изначально весь массив по возрастанию, а потом в отдельной функции отсортировать половину массива по убыванию. Видимо, у меня проблема с выводом этих функции, потому что функции работают только отдельно. В этом виде программа выводит массив отсортированный по возрастанию, если его закомментировать, то выводит массива,отсортированный по убыванию. Помогите пожалуйста разобраться.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _10._7
{
class Program
{ static int [] Massiv (int numbers_elements ) //Функция заполненния одномерного массива с клавиатуры
{
int[] MyArray = new int[numbers_elements];
for (int i = 0; i < numbers_elements; i++)
{
Console.WriteLine("Введите элемент массива");
MyArray[i] = Convert.ToInt32(Console.ReadLine());
}
return MyArray;
}
private static int [] Swop(int [] massiv) //Функция перестановки элементов массива по возрастанию
{
for (int i = 0; i < massiv.Length; i++) //Цикл будет считать число обходов. Кол-во обходов будет равно количеству элементов
{
for (int j = 0; j < massiv.Length - 1; j++)
{
if (massiv[j] > massiv[j + 1]) // Цикл попарно сравнивает элементы
{
int temp = massiv[j];
massiv[j] = massiv[j + 1];
massiv[j + 1] = temp;
}
}
}
for (int k = 0; k < massiv.Length; k++) //Цикл вывода элементов
{
Console.Write(massiv[k] + ", ");
}
return massiv;
}
private static int [] Swop_Reverse(int [] massiv_reverse) //Функция перестановки элементов массива по убыванию (начиная с середины)
{
for ( int i = massiv_reverse.Length / 2; i < massiv_reverse.Length; i++)
{
for (int j = massiv_reverse.Length / 2; j < massiv_reverse.Length - 1; j++)
{
if (massiv_reverse[j] < massiv_reverse[j+1]) // Цикл попарно сравнивает элементы
{
int temp = massiv_reverse[j];
massiv_reverse[j] = massiv_reverse[j + 1];
massiv_reverse[j + 1] = temp;
}
}
}
for (int k = 0; k < massiv_reverse.Length; k++) //Цикл вывода элементов
{
Console.Write(massiv_reverse[k] + ", ");
}
return massiv_reverse;
}
static void Main(string[] args)
{
Console.WriteLine("Введите кол-во элементов в массива");
int n = Convert.ToInt32(Console.ReadLine());
int[] Myarray = Massiv(n);
//int[] array = Swop(Myarray);
int [] array = Swop_Reverse(Myarray);
Console.ReadKey();
}
}
}