Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int *pArr = 0;
- /////////////////////////////////////////////////////
- void swap(int n1, int n2) //
- {
- int nBuf = pArr[n1];
- pArr[n1] = pArr[n2];
- pArr[n2] = nBuf;
- }
- __declspec(dllexport)
- //////////////////////////
- void (*pf_swap)(int, int) = swap;
- __declspec(dllexport)
- //////////////////////////
- int nAddress = (int)(&pf_swap);
- extern "C" __declspec(dllexport) // Сортировка пузырьком
- /////////////////////////////////////////////////////
- void bubble_sorting(int *a, int size) // Передаёте адрес элемента массива,
- { // с которого начинаете упорядочивание по возрастанию.
- // И передаёте кол-во элементов, которые будут отсортированы
- pArr = a; // ! ! ! ДОБАВЬТЕ ТАКУЮ ЖЕ СТРОКУ В Вашу функцию. ! ! !
- int i, // Счётчик в цикле //
- Flag; // флаг перестановки //
- do { Flag = 0;
- for(i = 0; i < size - 1; i++)
- {
- if(a[i] > a[i+1])
- {
- pf_swap(i, i+1);
- // Нужна для отслеживания хода сортировки
- Flag = 1; // Была перестановка. Значит цикл продолжится
- }
- }
- } while(Flag == 1); // Если (Flag == 1), то цикл повторяется
- }
- extern "C" __declspec(dllexport) // Сортировка "Расчёска"
- /////////////////////////////////////////////////////
- void comb_sorting(int *a, int size) // Передаёте адрес элемента массива,
- { // с которого начинаете упорядочивание по возрастанию.
- // И передаёте кол-во элементов, которые будут отсортированы.
- pArr = a; // ! ! ! ДОБАВЬТЕ ТАКУЮ ЖЕ СТРОКУ В Вашу функцию. ! ! !
- int step = size - 1;
- while(step >= 1)
- {
- for(int i = 0; i + step < size; i++)
- {
- if(a[i] > a[i+step]) pf_swap(i, i+step);
- }
- step /= 1.2473309;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment