排序算法:有规律的数组排序
假设有一个长度为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)
大家看看有没有什么方法能利用上其奇偶项的规律对该数组排序呢 展开
值依次为: 0 5 1 6 2 7 3 8 4 9
(奇数项是 0 1 2 3 4,偶数项是 5 6 7 8 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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个“规律”具体是什么呢?我可以归纳出三种:
奇数项和偶数项各自都是有序的整数;
奇数项和偶数项各自都是有序的连续整数;
奇数项和偶数项各自都是有序的连续整数,且奇数项全部小于偶数项;
哪个是题主所说的“规律”?
追问
这三种规律都是,反正就是尽可能利用其规律吧,这个数组规律很明显,但我想了半天也没有什么好办法,哪怕是利用上其中的任意一条规律
追答
如果是第三种那不就简单了。。。你确定?
新建一个等长的数组,先把奇数项依次复制进去,再把偶数项依次复制进去,最后复制回原数组。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询