急!快速排序只有40分,求助大佬们
查看原帖
急!快速排序只有40分,求助大佬们
1115654
last_arknight楼主2023/10/9 22:54
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int n, i_, k;
int arr[1000001];
void swap(int *a, int *b){
	int t = *a;
	*a = *b;
	*b = t;
}
void quick_sort(int begin, int end){
	if (begin > end)
		return;
	int mid = arr[begin];
	int i = begin;
	int j = end;
	while (i != j){
		while (arr[j] >= mid && i < j)
			j--;
		while (arr[i] <= mid && i < j)
			i++;
		if (j > i){
			swap(&arr[i], &arr[j]);
		}
	}
	arr[begin] = arr[i];
	arr[i] = mid;
	quick_sort(begin, i - 1);
	quick_sort(i + 1, end);
}
int main()
{
	scanf("%d", &n);
	for (i_ = 0; i_ < n; i_++){
		scanf("%d", &arr[i_]);
	}
	quick_sort(0, n - 1);
	for (k = 0; k < n-1; k++)
		printf("%d ", arr[k]);
	printf("%d", arr[n - 1]);
	return 0;
}

2023/10/9 22:54
加载中...