#include<iostream>

void quick_sort(long long *arr, int low, int high) {

	int i = low,j = high;

	long long key = arr[i];

	while(i < j) {

		while(i < j && arr[j] >= key) {

			--j;
		}

		arr[i] = arr[j];

		while(i < j && arr[i] <= key) {

			++i;
		}

		arr[j] = arr[i];
	}

	arr[i] = key;

	if(i - 1 > low) {

		quick_sort(arr, low, i - 1);
	}

	if(i - 1 < high) {

		quick_sort(arr, i + 1, high);
	}

	return;
}

long long num[30000];

int main() {

	printf("请输入排序元素个数:\n");

	int quant;
	scanf("%d",&quant);
	
	if(quant <= 0 || quant > 30000) {

		printf("Are you kidding me?");

		return 0;
	}

	printf("请输入各个元素的数值:\n");

	std::ios::sync_with_stdio(false);

	for(int i = 0; i < quant; ++i) {

		std::cin >> num[i];

		if(std::cin.fail() == true){
			
			printf("Your number is fail!");
			
			return 0;
		}
	}

	quick_sort(num, 0, quant - 1);

	printf("排序完毕:\n");

	for(int i = 0; i < quant; ++i) {

		printf("%lld ",num[i]);
	}

	return 0;
}

这玩意是我上网了解快排原理后自己写的 还真不难

1 comments

  • @ 2024-9-21 21:05:39

    我写这玩意的最大收获其实是知道了数量的英文名缩写是quant

    • 1