Алгоритм быстрой сортировки - C (СИ)

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

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

не могу понять, где ставить <, >, или >=, <= как точно понять?? А вообще это рабочий код, можете скомпилировать у себя
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define SIZE 5
  4.  
  5. void InitR(int* p, int n, int number){
  6. int i;
  7. for(i=0;i<n;i++) p[i]=(rand()%number)+1;
  8. }
  9. void QSort(int* p,int l, int r){
  10. int i=l,j=r;
  11. int buf,m=(int)p[(l+r)/2];
  12. do{
  13. while(p[i]<m && i<r) i++; //почему именно p[i]<m, а не p[i]<=m
  14. while(p[j]>m && j>l) j--;
  15. if(i<=j){
  16. buf=p[i];p[i]=p[j];p[j]=buf;i++;j--;
  17. }
  18. }while(i<=j); //тут тоже почему i<=j, а не i<j
  19.  
  20. if(j>l) QSort(p,l,j);
  21. if(j<r) QSort(p,i,r);
  22. }
  23.  
  24. void Show(int* p, int n){
  25. int i;
  26. for(i=0;i<n;i++) printf("p[%d] = %d \n",i,p[i]);
  27. printf("\n\n\n");
  28. }
  29.  
  30. void main(void){
  31. int* p;
  32. p=(int*)malloc(SIZE*sizeof(int));
  33. if(p==NULL){
  34. printf("Mo memory!");
  35. exit(0);
  36. }
  37. InitR(p,SIZE,SIZE);
  38. Show(p,SIZE);
  39. QSort(p,0,SIZE-1);
  40.  
  41. Show(p,SIZE);
  42.  
  43. free(p); p=NULL;
  44. system("pause");
  45. }

Решение задачи: «Алгоритм быстрой сортировки»

textual
Листинг программы
  1.         while(p[i]>m && i<r)    i++;       
  2.         while(p[j]<m && j>l)    j--;

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


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

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

7   голосов , оценка 4.571 из 5

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

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

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