Быстрая сортировка работает наполовину - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем здрасте,проблемка есть.
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 10
  4. int main()
  5. {
  6. int arr[N]; //то что будем сортировать
  7. int i,j; //то,чем оперирует массив
  8. int n,m; //вводимая разрядность массива
  9. int x; //середина
  10. int tmp; //временная переменная
  11. scanf("%d",&n); //ввод
  12. for(m=0;m<n;m++) //заполнение случайными числами
  13. arr[m] = rand()%100;
  14. for(m=0;m<n;m++) //вывод первоначального массива
  15. printf("%d ",arr[m]);
  16. printf("\n");
  17. //присваивания
  18. i = 0;
  19. j = n;
  20. x = arr[n>>1];
  21. do //сортировка
  22. {
  23. while(arr[i] < x) i++;
  24. while(arr[j] > x) j--;
  25. if (i <= j)
  26. {
  27. tmp = arr[i];
  28. arr[i] = arr[j];
  29. arr[j] = tmp;
  30. i++;
  31. j--;
  32. }
  33. }
  34. while (i <= j);
  35. // вот сюда бы по идее надо вставить рекурсивный вызов,но как?
  36. for(m=0;m<n;m++) //вывод отсортированного массива
  37. printf("%d ",arr[m]);
  38. return 0 ;
  39. }
в плюсах есть функции вызова рекурсивного метода - это я знаю,но вот есть ли нечто подобное в Си? или аналог. помогите пожалуйста,а то он сортирует по половине и выдает не то что нужно)

Решение задачи: «Быстрая сортировка работает наполовину»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <errno.h>
  5.  
  6. void func(int n){
  7.     if (n > 0){
  8.         printf(" %d", n);
  9.         func(--n);
  10.     }
  11. }
  12. int main(){
  13.     int x = 15;
  14.     func(x);
  15.     return 0;
  16. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы