社区讨论
不是要快排嘛,为啥还不行啊(难不成还能更快?)
P1177【模板】排序参与者 8已保存回复 13
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @mi7ydn7r
- 此快照首次捕获于
- 2025/11/21 05:38 4 个月前
- 此快照最后确认于
- 2025/11/21 06:42 4 个月前
CPP
#include <stdio.h>
#include <stdlib.h>
void swap(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
return;
}
void kp(int arr[] ,int start, int end)
{
int arrBase, arrMiddle;
int Start = start,
End = end;
if(Start >= End)
return;
arrBase = arr[start];
while(start < end)
{
while(start < end && arr[end] > arrBase)
end--;
if(start < end)
{
swap(&arr[start], &arr[end]);
start++;
}
while(start < end && arr[start] < arrBase)
start++;
if(start < end)
{
swap(&arr[start], &arr[end]);
end--;
}
}
arr[start] = arrBase;
arrMiddle = start;
kp(arr,Start,arrMiddle-1);
kp(arr,arrMiddle+1,End);
}
int main()
{
int a[100002],i;
int l;
scanf("%d",&l);
for(i=0;i<l;i++)
scanf("%d",&a[i]);
kp(a,0,l-1);
printf("%d",a[0]);
for(int i = 1; i<l; i++)
printf(" %d",a[i]);
printf("\n");
return 0;
}
回复
共 13 条回复,欢迎继续交流。
正在加载回复...