Быстрая сортировка работает наполовину - C (СИ)
Формулировка задачи:
Всем здрасте,проблемка есть.
в плюсах есть функции вызова рекурсивного метода - это я знаю,но вот есть ли нечто подобное в Си? или аналог. помогите пожалуйста,а то он сортирует по половине и выдает не то что нужно)
#include <stdio.h> #include <stdlib.h> #define N 10 int main() { int arr[N]; //то что будем сортировать int i,j; //то,чем оперирует массив int n,m; //вводимая разрядность массива int x; //середина int tmp; //временная переменная scanf("%d",&n); //ввод for(m=0;m<n;m++) //заполнение случайными числами arr[m] = rand()%100; for(m=0;m<n;m++) //вывод первоначального массива printf("%d ",arr[m]); printf("\n"); //присваивания i = 0; j = n; x = arr[n>>1]; do //сортировка { while(arr[i] < x) i++; while(arr[j] > x) j--; if (i <= j) { tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; i++; j--; } } while (i <= j); // вот сюда бы по идее надо вставить рекурсивный вызов,но как? for(m=0;m<n;m++) //вывод отсортированного массива printf("%d ",arr[m]); return 0 ; }
Решение задачи: «Быстрая сортировка работает наполовину»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> void func(int n){ if (n > 0){ printf(" %d", n); func(--n); } } int main(){ int x = 15; func(x); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д