laba 2 ir.

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #include <cstring> using namespace std; template <typename T> void print(T *mas, int size){ for(int i=0; i<size; i++) cout<<mas[i]; cout<<endl; } template <typename T> void qsortRecursive(T *mas, int size){ //Указатели в начало и в конец массива int i = 0; int j = size - 1; //Центральный элемент массива int mid = mas[size / 2]; //Делим массив do { //Пробегаем элементы, ищем те, которые нужно перекинуть в другую часть //В левой части массива пропускаем(оставляем на месте) элементы, которые меньше центрального while(mas[i] < mid) { i++; } //В правой части пропускаем элементы, которые больше центрального while(mas[j] > mid) { j--; } //Меняем элементы местами if (i <= j) { int tmp = mas[i]; mas[i] = mas[j]; mas[j] = tmp; i++; j--; } } while (i <= j); //Рекурсивные вызовы, если осталось, что сортировать if(j > 0) { //"Левый кусок" qsortRecursive(mas, j + 1); } if (i < size) { //"Првый кусок" qsortRecursive(&mas[i], size - i); } } int main() { char array [] = "aodsiafgerkeio"; int len = strlen(array); cout << "Не отсортированный массив типа char: "; print(array, len); qsortRecursive(array, len); cout << "Отсортированный массив типа char: "; print(array, len); int iArray [5] = {3,5,7,2,9}; cout << "Не отсортированный массив типа int: "; print(iArray, 5); qsortRecursive(iArray, 5); cout << "Отсортированный массив типа int: "; print(iArray, 5); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines