Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace d1
- {
- // Клас за представяне на изчислителен алгоритъм
- public class Algorithm
- {
- // Метод за сортиране на масив по метода на мехурчето
- public static void BubbleSort(int[] array)
- {
- // Проверяваме дали масивът е null или празен
- if (array == null || array.Length == 0)
- {
- return; // Ако е така, прекратяваме метода
- }
- bool swapped; // Променлива за проверка дали има размяна на елементи
- do
- {
- swapped = false; // Задаваме променливата на false
- for (int i = 0; i < array.Length - 1; i++) // Обхождаме всички елементи на масива, освен последния
- {
- if (array[i] > array[i + 1]) // Ако текущият елемент е по-голям от следващия
- {
- Swap(array, i, i + 1); // Разменяме ги
- swapped = true; // Задаваме променливата на true
- }
- }
- } while (swapped); // Повтаряме цикъла докато има размяна на елементи
- }
- // Метод за размяна на два елемента в масив по индекси
- private static void Swap(int[] array, int i, int j)
- {
- int temp = array[i]; // Запазваме стойността на първия елемент в променлива
- array[i] = array[j]; // Задаваме стойността на първия елемент да бъде равна на стойността на втория елемент
- array[j] = temp; // Задаваме стойността на втория елемент да бъде равна на запазената стойност на първия елемент
- }
- // Метод за намиране на факториел от дадено число рекурсивно
- public static int Factorial(int n)
- {
- if (n < 0) // Ако числото е отрицателно
- {
- throw new ArgumentException("Числото не може да бъде отрицателно."); // Хвърляме изключение
- }
- if (n == 0 || n == 1) // Ако числото е 0 или 1
- {
- return 1; // Връщаме 1 като резултат от метода
- }
- return n * Factorial(n - 1); // Връщаме произведението на числото и факториела от предходното число като резултат от метода
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement