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

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

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

Листинг программы
  1. using sistem;
  2. namespase Sortirovka_1 // объявление пространства имен
  3. {
  4. class QuickSorting // определение метода
  5. {
  6. public static void sorting(double[] arr, long first, long last) //обращение к методу
  7. {
  8. double p = arr[(last - first)/2 + first];
  9. double temp;
  10. long i = first, j = last;
  11. while(i <= j)
  12. {
  13. while(arr[i] < p && i <= last) ++i;
  14. while(arr[j] > p && j >= first) --j;
  15. if(i <= j)
  16. {
  17. temp = arr[i];
  18. arr[i] = arr[j];
  19. arr[j] = temp;
  20. ++i; --j;
  21. }
  22. }
  23. if(j > first) sorting(arr, first, j);
  24. if(i < last) sorting(arr, i, last);
  25. }
  26. }
  27. }

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

textual
Листинг программы
  1.         public static void sorting(double[] arr, long first, long last) //обращение к методу
  2.         {
  3.            double p = arr[(last - first)/2 + first]; //p - средний элмент в текущем подмассиве
  4.            double temp;
  5.            long i = first, j = last; //i - индекс первого, j- индекс последнего
  6.            while(i <= j) //пока не все элменты раскиданы относительно среднего шагаем по циклу
  7.            {
  8.              while(arr[i] < p && i <= last)  ++i; //пропускаем слева, те что меньше среднего
  9.              while(arr[j] > p && j >= first) --j; //пропускаем слева, те что больше среднего
  10.              if(i <= j)                //если есть не раскиданные элементы - меняем их местами
  11.               {
  12.                  temp = arr[i];  
  13.                  arr[i] = arr[j];  //больший в левую половину подмассива
  14.                  arr[j] = temp;   //меньший в правую
  15.                  ++i; --j;        //переходим к следующим элментам
  16.                }
  17.             }
  18.             if(j > first) sorting(arr, first, j); //вызываем сортировку рекурсивно для левого подмассива, если это требуется
  19.             if(i < last)  sorting(arr, i, last);//вызываем себя рекурсивно для правого подмассива, если это требуется
  20.           }
  21.        }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут