快速排序

快速排序的三种方法(递归方式) 

void swap(int *a,int *b)
{
	int tmp=*a;
	*a=*b;
	*b=tmp;
}
int QuickSort1(int arr[],int start,int end,int n)//左右交换
{
	
	int index=arr[end];
	while(startindex)
			end--;
		swap(&arr[start],&arr[end]);
	}
	swap(&index,&arr[start]);
	return end;
}
int QuickSort1(int arr[],int start,int end,int n)//挖坑法
{
	
	int index=arr[end];
	while(startindex)
			end--;
		arr[start]=arr[end];
	}
	arr[end]=index;
	return end;
}

int QuickSort1(int arr[],int start,int end,int n)//前后指针法
{
	if(arr==NULL||start<0||end>n)
	{
		return 0;
	}
	int small=start-1;
	int index=arr[end];
	swap(&arr[index],&arr[end]);
	for(index=start;index0)
		QuickSort(arr,start,index-1,n);
	if(index

 

你可能感兴趣的:(快速排序)