Шаблон функции быстрой сортировки
Для того чтобы сортировать массивы любого типа, целесообразно на основе данной функции создать шаблон. Оказывается, что для этого нужно приложить совсем немного усилий. В уже существующий код внесите следующие изменения:
template <class T> void Quicksort (Т *ar, int 1, int r) { //======= Рабочие переменные Т mid, temp; //======= Далее следует тот же код, который приведен //======= в оригинальной версии функции Quicksort }
Проверьте функционирование, вставив в функцию main вызовы функции с другими типами параметров. Например:
void main() { //======= Размер массива сортируемых чисел const int N = 21; // double ar[N]; int ar[N]; puts ("\n\nArray before SortingXn"); for (int i=0; i<N; i++) { ar[i] = rand()%20; if (i%3==0) printf ("\n"); // printf ("ar[%d]=%2.0f\t",i,ar[i]); printf ("%d\t",ar[i]); } Quicksort(ar,0,N-1); puts("\n\nAfter SortingXn"); for (i=0; i<N; i + +); { if (i%3==0) printf ("\n"); // printf ("ar[%d]=%2.0f\t",i,ar[i]); printf ("%d\t",ar[i]); } puts ("\n"); }
В данный момент функция main настроена на сортировку массива целых. Внесите приведенные изменения и проверьте работу шаблона для массива целых. Уберите комментарии там, где они есть, но вставьте комментарии в строки программы, следующие ниже. После этой процедуры функция main будет настроена на проверку шаблона функции сортировки для массива вещественных. Проверьте и этот случай. Шаблон должен справиться с обоими.
Примечание
Перед запуском консольных приложений настройте консольное окно так, чтобы его размеры вмещали весь выходной текст. Для этого вызовите контекстное меню на заголовке консольного окна и дайте команду Properties. Откройте страницу на вкладке Layout и подстройте размеры окна в полях Width и Height группы Window Size.