код только принимает входные значения, то ничего не происходит - PullRequest
0 голосов
/ 22 октября 2019

эта программа быстрой сортировки принимает входные значения во время выполнения, тогда ничего не происходит, ни завершение программы, ни вывод не отображаются.

Я проверяю алгоритм дважды, но не могу найти решения.

#include<stdio.h>
void quicksort(int a[25],int beg,int end)
{
 int loc, right, left, temp;

 if(beg<end)
  {
    left=beg;
    loc=beg;
    right=end;

    while(loc<right)
          a[loc]=a[right];
          a[right]=temp;
       }
      {


       while(a[loc]<=a[left]&&loc<end)
          loc++;
       while(a[right]>a[left])
          right--;
       if(loc<right)
       {
          temp=a[loc];
    }

    temp=a[left];
    a[left]=a[right];
    a[right]=temp;
    quicksort(a,beg,right-1);
    quicksort(a,right+1,end);

   }
}

int main()
{
   int i,n, a[25];
   printf("Enter the no of elements:");
   scanf("%d",&n);
 printf("Enter the array elements:");
 for(i=0;i<n;i++)
 {
    scanf("%d",&a[i]);
 }
 quicksort(a,0,n-1);

 printf("Elements after sorting is:");
 for(i=0;i<n;i++)
    printf(" %d",a[i]);


 return 0;
}

вывод не отображается. после ввода входных данных курсор останавливается в одном месте

1 Ответ

0 голосов
/ 22 октября 2019

Это циклы навсегда:

while(loc<right)
      a[loc]=a[right];

Вы должны исправить размещение скобок, возможно, добавьте несколько здесь и там.

...