山迟暮 @ 2021-07-26 12:47:43
感觉逻辑没问题,但是输出不来。
#include<bits/stdc++.h>
using namespace std;
int tmp[1005],a[1005];
void paixu(int begin,int end,int mid){
int i,u,p;
i = begin;u = begin;p = mid;
while(i<mid&&p<=end){
if(a[i]<a[p]) tmp[u++] = a[i++];
else tmp[u++] = a[p++];
}
while(i<mid)tmp[u++] = a[i++];
while(p<=end)tmp[u++] = a[p++];
i = begin; p = begin;
while(i<=end) a[i++] = tmp[p++];
}
void anssort(int begin,int end){
int mid;mid = (begin+end)/2;
if(mid<1)return;
anssort(begin,mid);
anssort(mid+1,end);
paixu(begin,end,mid+1);
}
int main(){
int n,k;
cin >> n >> k;
for(int i = 0; i < n; i++) cout<<a[i];
anssort(a[0],a[n-1]);
cout<<a[k];
return 0;
}
by DeusExMachina @ 2021-07-26 13:43:24
@zhou1108__ 可以加一些注释说明是干什么的吗?qwq
by 鲁锦聪 @ 2021-07-26 14:09:04
@zhou1108__ 看不懂……
by 山迟暮 @ 2021-07-26 14:42:01
@TheRedKiller_ 归并排序QAQ
by DeusExMachina @ 2021-07-26 15:01:27
@zhou1108__ 每一条语句是干什么的?我对归并排序并不太懂QAQ但是也很想看看qwq
by 天才颓废学家 @ 2021-07-26 18:34:25
anssort(a[0],a[n-1]);
这里不应该写为
anssort(0,n-1);
吗?
by 山迟暮 @ 2021-07-27 08:25:20
@天才颓废学家 没,就是这样写。
by 天才颓废学家 @ 2021-07-27 14:58:00
@zhou1108__
for(int i = 0; i < n; i++) cout<<a[i];
cin ?
cout ?
我还是觉得应该写成 “ anssort(0,n-1); ”
by 山迟暮 @ 2021-07-27 15:54:12
@天才颓废学家 这写了没法运行,这条语句过不了