https://blog.csdn.net/pengzonglu7292/article/details/84938910
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void swap(int arr[],int i,int j)
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
/**
* @brief 快速排序算法
* @return
*/
void quicksort(int arr[],int left,int right)
{
int i,j,temp;
if(left>right){
return;
}
/*以最开始的数为基准数*/
temp=arr[left];
i=left;
j=right;
while(i!=j){
while(arr[j]>=temp && i<j){
j--;
}
while(arr[i]<=temp && i<j){
i++;
}
if(i<j){
swap(arr,i,j);
}
}
//最终进行归位
arr[left]=arr[i];
arr[i]=temp;
quicksort(arr,left,i-1);
quicksort(arr,i+1,right);
}
int main()
{
int arr[]={4,2,3};
int len=sizeof(arr)/sizeof(arr[0]);
// int *temp=(int*)malloc(sizeof(int)*len);
printf("%d\n",sizeof(arr)/sizeof(int));
for(int i=0;i<len;i++){
printf("%d ",arr[i]);
}
printf("\n");
printf("after mergesort\n");
quicksort(arr,0,len-1);
// free(temp);
for(int i=0;i<len;i++){
printf("%d ",arr[i]);
}
return 0;
}