Advertisement
CR7CR7

algorithm-d1

Jul 14th, 2023
671
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.05 KB | None | 0 0
  1. using System;
  2.  
  3. namespace d1
  4. {
  5.     // Клас за представяне на изчислителен алгоритъм
  6.     public class Algorithm
  7.     {
  8.         // Метод за сортиране на масив по метода на мехурчето
  9.         public static void BubbleSort(int[] array)
  10.         {
  11.             // Проверяваме дали масивът е null или празен
  12.             if (array == null || array.Length == 0)
  13.             {
  14.                 return; // Ако е така, прекратяваме метода
  15.             }
  16.  
  17.             bool swapped; // Променлива за проверка дали има размяна на елементи
  18.  
  19.             do
  20.             {
  21.                 swapped = false; // Задаваме променливата на false
  22.  
  23.                 for (int i = 0; i < array.Length - 1; i++) // Обхождаме всички елементи на масива, освен последния
  24.                 {
  25.                     if (array[i] > array[i + 1]) // Ако текущият елемент е по-голям от следващия
  26.                     {
  27.                         Swap(array, i, i + 1); // Разменяме ги
  28.                         swapped = true; // Задаваме променливата на true
  29.                     }
  30.                 }
  31.             } while (swapped); // Повтаряме цикъла докато има размяна на елементи
  32.         }
  33.  
  34.         // Метод за размяна на два елемента в масив по индекси
  35.         private static void Swap(int[] array, int i, int j)
  36.         {
  37.             int temp = array[i]; // Запазваме стойността на първия елемент в променлива
  38.             array[i] = array[j]; // Задаваме стойността на първия елемент да бъде равна на стойността на втория елемент
  39.             array[j] = temp; // Задаваме стойността на втория елемент да бъде равна на запазената стойност на първия елемент
  40.         }
  41.  
  42.         // Метод за намиране на факториел от дадено число рекурсивно
  43.         public static int Factorial(int n)
  44.         {
  45.             if (n < 0) // Ако числото е отрицателно
  46.             {
  47.                 throw new ArgumentException("Числото не може да бъде отрицателно."); // Хвърляме изключение
  48.             }
  49.  
  50.             if (n == 0 || n == 1) // Ако числото е 0 или 1
  51.             {
  52.                 return 1; // Връщаме 1 като резултат от метода
  53.             }
  54.  
  55.             return n * Factorial(n - 1); // Връщаме произведението на числото и факториела от предходното число като резултат от метода
  56.         }
  57.     }
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement