排序算法:有规律的数组排序

假设有一个长度为10的数组,值依次为:0516273849(奇数项是01234,偶数项是56789)大家看看有没有什么方法能利用上其奇偶项的规律对该数组排序呢... 假设有一个长度为10的数组,
值依次为: 0 5 1 6 2 7 3 8 4 9
(奇数项是 0 1 2 3 4,偶数项是 5 6 7 8 9)
大家看看有没有什么方法能利用上其奇偶项的规律对该数组排序呢
展开
 我来答
剧恬闻平乐
2019-05-30 · TA获得超过1201个赞
知道答主
回答量:1892
采纳率:94%
帮助的人:9.2万
展开全部
数组中的元素应该是从0~n-1的否则你开始定义的a[n]空间不够,会发生错误#include<stdio.h>#define n 10void show(int r[] , int n)/*elements are stored in r[0] to r[n-1]*/void bubblesort(int r[],int n)/*elements are stored in r[0] to r[n-1]*/ } } return;} /*bubblesort*/ void main(),i; printf("请输入 %d 个整数:\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("数组a的%d个元素是:\n",n); show(a,n); printf("冒泡法排序每趟的情形是:\n"); bubblesort(a,n); printf("\nafter sorted by bubblesort:\n"); show(a,n);} 运行过程: <br><br><br>如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! <br><br>参考资料: <a href="https://wenwen.sogou.com/login/redirect?url=http%3a%2f%2fvae.la" target="_blank">http://vae.la</a><br><br>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WM_THU
2014-11-10 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3938万
展开全部

这个“规律”具体是什么呢?我可以归纳出三种:

  • 奇数项和偶数项各自都是有序的整数;

  • 奇数项和偶数项各自都是有序的连续整数;

  • 奇数项和偶数项各自都是有序的连续整数,且奇数项全部小于偶数项;

哪个是题主所说的“规律”?

追问
这三种规律都是,反正就是尽可能利用其规律吧,这个数组规律很明显,但我想了半天也没有什么好办法,哪怕是利用上其中的任意一条规律
追答
如果是第三种那不就简单了。。。你确定?
新建一个等长的数组,先把奇数项依次复制进去,再把偶数项依次复制进去,最后复制回原数组。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式