Описать алгоритм быстрой сортировки (по строчкам) - C#

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

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

    using sistem;
    namespase Sortirovka_1 // объявление пространства имен
    {
      class QuickSorting // определение метода
      {
        public static void sorting(double[] arr, long first, long last) //обращение к методу
        {
           double p = arr[(last - first)/2 + first];
           double temp;
           long i = first, j = last;
           while(i <= j) 
           {
             while(arr[i] < p && i <= last)  ++i;
             while(arr[j] > p && j >= first) --j;
             if(i <= j) 
              {
                 temp = arr[i];
                 arr[i] = arr[j];
                 arr[j] = temp;
                 ++i; --j;
               }
            }
            if(j > first) sorting(arr, first, j);
            if(i < last)  sorting(arr, i, last);
          }
       }
    }

Решение задачи: «Описать алгоритм быстрой сортировки (по строчкам)»

textual
Листинг программы
        public static void sorting(double[] arr, long first, long last) //обращение к методу
        {
           double p = arr[(last - first)/2 + first]; //p - средний элмент в текущем подмассиве
           double temp;
           long i = first, j = last; //i - индекс первого, j- индекс последнего
           while(i <= j) //пока не все элменты раскиданы относительно среднего шагаем по циклу
           {
             while(arr[i] < p && i <= last)  ++i; //пропускаем слева, те что меньше среднего
             while(arr[j] > p && j >= first) --j; //пропускаем слева, те что больше среднего
             if(i <= j)                //если есть не раскиданные элементы - меняем их местами
              {
                 temp = arr[i];   
                 arr[i] = arr[j];  //больший в левую половину подмассива
                 arr[j] = temp;   //меньший в правую
                 ++i; --j;        //переходим к следующим элментам
               }
            }
            if(j > first) sorting(arr, first, j); //вызываем сортировку рекурсивно для левого подмассива, если это требуется
            if(i < last)  sorting(arr, i, last);//вызываем себя рекурсивно для правого подмассива, если это требуется
          }
       }

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


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

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

11   голосов , оценка 4.182 из 5