Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
167704 | 杜智真 | 二进制半整数 | C++ | 解答错误 | 0 | 1 MS | 264 KB | 765 | 2024-08-19 17:12:04 |
#include <bits/stdc++.h> using namespace std; void QuickSort(int i,int j,int a[]) { int m=i,n=j; int k=a[rand() % (j-i+1)+i]; //随机确定参考元素 while(m<=n) { while(a[m]<k && m<j) m++; //从左到右找比k大的元素 while(a[n]>k && n>i) n--; //从右到左找比k小的元素 if(m<=n) //若找到且满足条件,则交换 swap(a[m++],a[n--]); } if(m<j) QuickSort(m,j,a); //递归 if(n>i) QuickSort(i,n,a); } int main(){ int n,max=0; cin >> n; int a[100005]; for (int i=1;i<=n;i++){ cin >> a[i]; } QuickSort(1,n,a); for (int i=1;i<=n;i++){ cout << a[i] << " "; } return 0; }