思路:在第一次看到这道题的时候我第一想法是用冒泡,但好像我的水平还不允许我写出来。我又读了遍题目发现它的数据很小,我就寻思着把它分成奇偶两部分。应该怎么分呢?
当然在读入的时候把这个问题解决就最好了。正好它的数据范围又这么小,我就另开了两个数组aa,bb分别存奇数和偶数。在运用sort函数单独对两部分排序,最后输出时先奇再偶就解决了。幸好我没一次在冒泡上死磕,也不知道我是怎么想的了。。。。
AC代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>//输入的时候区分奇偶,奇aa,偶bb
//分别sortusing namespace std;
const int N = 1010;int a[N];
int aa[N];
int bb[N];
int n;
int t1,t2;int main()
{scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);if(a[i] % 2 == 1) {aa[t1] = a[i];t1++;}if(a[i] % 2 == 0){bb[t2] = a[i];t2++;}}//int len1 = strlen(aa);//int len2 = strlen(bb);int len1 = t1;int len2 = t2;sort(aa,aa+len1);sort(bb,bb+len2);for(int i=0;i<len1;i++){printf("%d ",aa[i]);}for(int i=0;i<len2;i++){printf("%d ",bb[i]);}return 0;}