社区讨论
蒟蒻自己写的快速排序,各位dalao给点建议
学术版参与者 14已保存回复 13
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @mi7yuv93
- 此快照首次捕获于
- 2025/11/21 05:51 4 个月前
- 此快照最后确认于
- 2025/11/21 06:45 4 个月前
#include<bits/stdc++.h>
using namespace std;
int findji(int num[],int head,int feet);
void quicksqrt(int num[],int head,int feet){
if(head>=feet)return;
int ji=findji(num,head,feet);
quicksqrt(num,head,ji-1);
quicksqrt(num,ji+1,feet);
}
int findji(int num[],int head,int feet){
int ji=num[head],left=head,right=feet,k=head;
while ( right >= left ){
while ( right >= left ) {
if (num[right] < ji) {
num[left] = num[right];
k = right;
left++;
break;
}
right--;
}
while ( right >= left ) {
if (num[left] > ji) {
num[right] = num[left];
k = left;
right--;
break;
}
left++;
}
}
num[k] = ji;
return k;
}
int main(){
int n,head,feet;
cin>>n;
int num[n];
for(int i=0;i<n;i++){
cin>>num[i];
}
cin>>head>>feet;
head--;feet--;
quicksqrt(num,head,feet);
for(int i=head;i<feet+1;i++){
cout<<num[i]<<" ";
}
return 0;
}
回复
共 13 条回复,欢迎继续交流。
正在加载回复...