编辑代码

#include <stdio.h>

int findp( int arrstart, int arrend) {
	return (arrstart + arrend) / 2;
}

int part(int arr[], int arrstart, int arrend) {
	int p = findp( arrstart, arrend);
	int temp = arr[arrstart];
	arr[arrstart] = arr[p];
	arr[p] = temp;
	int pre = arr[arrstart];
	while (arrstart < arrend) {
		while (arrstart<arrend&&arr[arrend]>pre)
			arrend--;
		arr[arrstart] = arr[arrend];
		while (arrstart < arrend&&arr[arrstart] < pre)
			arrstart++;
		arr[arrend] = arr[arrstart];
	}
	arr[arrstart] = pre;
	return arrstart;
}

void quicksort(int arr[], int arrstart, int arrend) {
	if (arrstart < arrend) {
		int piv = part(arr, arrstart, arrend);
		quicksort(arr, arrstart, piv - 1);
		quicksort(arr, piv + 1, arrend);
	}
}

void printarr(int arr[],int len){
	for (int i = 0; i < len; i++) {
		printf("%d ", arr[i]);
	}
}
int main() {
	int arr1[] = { 4,9,6,21,69,99,63 };
    int len1 =sizeof(arr1)/sizeof(int);
	quicksort(arr1, 0, len1);
    printarr(arr1,len1);


	return 0;
}