我正在制作一個快速排序程式,它列印 arry 的排序元素但是當我運行代碼時出現分段錯誤
#include <iostream>
using namespace std;
int partition(int arr[],int left,int right,int pivot) {
while(left <= right) {
while(arr[left] < pivot) {
left ;
}
while(arr[right] > pivot) {
right--;
}
if(left <= right) {
swap(arr[left],arr[right]);
left ;
right--;
}
}
return left;
}
void quick_sort(int arr[],int left,int right) {
int pivot = arr[(left right)/2];
int index = partition(arr,left,right,pivot);
quick_sort(arr,left,index-1);
quick_sort(arr,index,right);
}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int size = sizeof(arr)/sizeof(arr[0]);
quick_sort(arr,0,size-1);
for(int i = 0; i < size; i ) {
cout << arr[i] << " ";
}
return 0;
}
我期待著一組硬編碼的元素。
uj5u.com熱心網友回復:
將此添加到您的 quick_sort 功能之上
if (left >= right)
return;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537139.html
標籤:C 分段故障快速排序
