快速排序c语言实现代码
void QuickSort(int L,int R,int *arr)
{
if(L>=R)
{
return;
}
int left=L,right=R,pivot=arr[left];
while(left<right)
{
while(left<right&&arr[right]>pivot)
{
right--;
}
if(left<right)
{
arr[left]=arr[right];
}
while(left<right&&arr[left]<pivot)
{
left++;
}
if(left<right)
{
arr[right]=arr[left];
}
if(left>=right)
{
arr[left]=pivot;
}
}
//递归调用函数
QuickSort(L,right-1,arr);//排序pivot的左边
QuickSort(right+1,R,arr);//排序pivot的右边
}
主函数
int main()
{
int arr[10]={1,8,6,4,3,5,9,0,7,2};
printf("排序前数组:");
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf("%d\t",arr[i]);
}
QuickSort(0,sizeof(arr)/sizeof(arr[0]),arr);
printf("\n排序后数组:");
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf("%d\t",arr[i]);
}
printf("\n");
return 0;
}
xcode执行程序结果