快速排序

快速排序

快速又巧妙,爆杀希尔排序

#include<stdio.h>

int partition(int* arr, int low, int high)
{
	int pivot = arr[low];
	while (low < high)
	{
		while (low < high && arr[high] >= pivot)high--;
		arr[low] = arr[high];
		while (low < high && arr[low] <= pivot)low++;
		arr[high] = arr[low];
	}
	arr[low] = pivot;
	return low;
}

void quick_sort(int* arr, int low, int high)
{
	if (low < high)
	{
		int pivot = partition(arr, low, high);
		quick_sort(arr, low, pivot - 1);
		quick_sort(arr, pivot + 1, high);
	}
}

int main()
{
	int arr[10] = { 9,3,5,7,1,2,4,6,8,0 };
	quick_sort(&arr,0,9);

}
posted @ 2022-04-12 21:05  huigugu  阅读(23)  评论(0)    收藏  举报