您好我正在我的程序中使用排序算法。這是快速排序。餘與排序後的數組測試了它作爲遵循排序算法的C排序更改數組中的值
int arr[7] = {1,2,3,4,5,6,7};
代碼是
void sort(int arr[],int left,int right)
{
int i= left, j= right;
int pivot = arr[((left+right)/2)];
int tmp=0;
/* partition */
printf("%d\n",arr[0]);
while(i<=j)
{
while(arr[i]<pivot)
i++;
while(arr[j]>pivot)
j--;
if(i<=j)
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if(left<j)
sort(arr,left,j);
if(i<right)
sort(arr,i,right);
}
當其返回它給ARR [0]的值爲0。其結果應爲1。
我在main裏面調用這個函數。下面是代碼調用排序
int main()
{
int i;
int arr[7] = {1,2,3,4,5,6,7};int max=0,min=0;
int len = (sizeof(arr)/sizeof(arr[0]));
printf("%d\n",arr[0]);
sort(arr,0,len);
printf("%d\n",arr[0]);
return 0;
}
你能包括其中'排序()'叫什麼left'和'right'的'值是? – dckuehn
我編輯了這個問題,並補充說。 – denis