大佬们,我手写的sort拿错了?
  • 板块灌水区
  • 楼主MM_GG
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/24 14:16
  • 上次更新2024/11/24 16:21:03
查看原帖
大佬们,我手写的sort拿错了?
1347699
MM_GG楼主2024/11/24 14:16
#include<bits/stdc++.h>
using namespace std;
int a[1000];
int n;
int leftt=0,rightt=n-1;
void fun(int start,int end) {
	int l=leftt;
	int r=rightt;
	int base=a[0];
	if(l>=r) {//如果左指针越过右指针
		return;
	}
	while(l<r) {
		while(a[r]>=base&&l<r) {		//从右往左开始扫荡
			r--;
		}
		if(l<r) {
			a[l]=a[r];
			l++;
		}
		while(a[l]<=base&&l<r) {			//从左往右开始扫荡
			l++;
		}
		if(l<r) {
			a[r]=a[l];
			r--;
		}
		a[l]=base;
	}
	fun(leftt,l-1);
	fun(leftt+1,r);
}
int main() {
	cin>>n;
	for(int i=0; i<n; i++) {
		cin>>a[i];
	}
	fun(leftt,rightt);
	for(int i=0; i<n; i++) {
		cout<<a[i]<<' ';
	}
	return 0;
}
2024/11/24 14:16
加载中...