80求助
查看原帖
80求助
1592221
aexlmx楼主2024/11/28 16:10
int par(int arr[], int low, int high)
{
	int pivot = arr[high]; int j = low;
	for (int i = low; i <= high; i++) {
		
		if (arr[i] < pivot) {
			int c = arr[i];
			arr[i] = arr[j];
			arr[j] = c;
			j++;

		}

	}
	int c = arr[high];
	arr[high] = arr[j];
	arr[j] = c;
	return j;

}
void qs(int arr[], int low, int high) {
	if (low < high) {
		int ret = par(arr, low, high);
		qs(arr, low, ret - 1);
		qs(arr, ret+1, high);
	}
}
int main()
{
	int n, m,count=0; static  arr[2000000];
	scanf("%d%d", &n, &m);
	for (int i = 0; i < m; i++)
	{
		int a;
		scanf("%d", &a);
		if (a > 0 && a <= m) {
			arr[i] = a;
			count++;

		}
	}
	qs(arr, 0, count - 1);
	for (int i = 0; i < count; i++)
	{
		printf("%d ", arr[i]);
	}


	return 0;
}
2024/11/28 16:10
加载中...