在C中实现快速排序的分段故障

问题描述 投票:0回答:1

我正在尝试执行Reema Thareja写的书《 [使用C的数据结构》中提到的快速排序代码。>问题是我无法将排序后的数组作为输出。相反,当我在数组中添加元素时,输出屏幕消失,再次运行代码时,我得到以下信息:

“输出”

我正在使用Turbo C ++版本:3.2编译器

#include <stdio.h> #include <conio.h> void quicksort(int arr[],int l,int r); void main() { int arr[10],l,r,i,n; printf("Enter Array size: "); scanf("%d",&n); printf("Enter Elements: "); for(i=0;i<n;i++) { scanf("%d",&arr[i]); } quicksort(arr,0,n-1); printf("The Sorted Array is: "); for (i = 0; i < n; i++) { printf("%d",arr[i]); } getch(); } int partition(int arr[],int l,int r) { int left,right,temp,loc,flag; loc=left=l; right=r; flag=0; while(flag!=1) { while((arr[loc]<=arr[right]) && loc!=right) { right--; } if(loc==right) { flag=1; } else if(arr[loc]>arr[right]) { temp=arr[loc]; arr[loc]=arr[right]; arr[right]=temp; loc=right; } if(flag!=1) { while((arr[loc]>=arr[left])&& (loc!=left)) { left++; } if(loc==left) { flag=1; } else if(arr[loc]<arr[left]) { temp=arr[loc]; arr[loc]=arr[left]; arr[left]=temp; loc=left; } } } return loc; } void quicksort(int arr[],int l,int r) { int loc; if(l!=r) { loc=partition(arr,l,r); quicksort(arr,l,loc-1); quicksort(arr,loc+1,r); } }

我正在尝试执行Reema Thareja撰写的《使用C的数据结构》一书中提到的快速排序代码。问题是我无法将排序后的数组作为输出。相反,当我添加元素时...
c sorting quicksort
1个回答
2
投票
考虑此功能:
© www.soinside.com 2019 - 2024. All rights reserved.