Описать алгоритм быстрой сортировки (по строчкам) - 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);//вызываем себя рекурсивно для правого подмассива, если это требуется } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д