合并两个静态数组并排序
2013-10-16 22:08
267 查看
#include <stdio.h> int main(void) { int a[]={9,2,1,0,5}; int b[]={6,7,8,4,3}; int c[10]; int i,j; for(i=0;i<5;i++) { c[i]=a[i]; c[i+5]=b[i]; } for(i=0;i<10;i++) printf("%d",c[i]); for(i=0;i<10;i++) for(j=i+1;j<11;j++) if(c[i]<c[j]) { c[i]^=c[j]; c[j]^=c[i]; c[i]^=c[j]; } printf("\n"); for(i=0;i<10;i++) printf("%d",c[i]); return 0; }
//合并静态数组并排序升级版,用字符串来进行数组排序! //(有缺陷,因为编码的关系排序数列中不能含有空格!) #include <stdio.h> #define N 11 //为什么这里长度为11? int main(void) { char a[]= "92105" ; char b[]={"67843"};//上下两个的区别?() char c ={'\0'} ;//为什么需要初始化为{'\0'}? int i,j; puts(a);puts(b); //**********将数组a,b合并到c********** for(i=0;i<5;i++) { c[i] = a[i]; c[i+5] = b[i]; } //**********打印输出C********** puts(c); //**********冒泡排序********** for(i=0;i<N;i++) for(j=i+1;j<=N;j++) if(c[i]<c[j]) c[i]^=c[j]^=c[i]^=c[j];//特殊的异或交换 /* 相当于下面的交换情况 c[i]^=c[j]; TEMP=c[j]; c[j]^=c[i]; c[i]=c[j]; c[i]^=c[j]; c[i]=TEMP; */ //**********打印输出排序后的C********** puts(c); return 0; }
相关文章推荐
- 最坏情况下,合并两个大小为n的已排序数组所需要的比较次数
- 合并两个已排序数组(Python代码)
- 如何合并两个数组为一个数组,并且排序。
- 每天一个小算法(1)----合并两个已经排序的数组
- 合并两个排序数组
- 【Java】两个排序后的数组A和B,其中A的末端有足够的缓冲容纳B。编写一个方法,将B合并入A并排序。
- php两个数组合并在一起,根据两个数组相同的键进行排序(时间排序)
- 合并两个排序数组
- 两个有序数组的合并排序,Java代码实现,并去重复,考虑空间利用率问题
- 编写一个程序,输入两个包含 5 个元素的数组,先将两个数组升序排序,然 后将这两个数组合并成一个升序数组(合并排序)。
- LeetCode --两个排序数组合并问题
- 最坏情况下,合并两个大小为n的已排序数组所需要的比较次数为
- 合并两个排序数组
- 剑指OFFER(java)-合并两个已排序的数组
- 合并两个数组为一个数组,并且对新数组进行排序
- 两个已排序数组的合并-C语言
- 合并两个排序数组
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 合并两个排序数组(时间复杂度O(n))
- 编程分别输入两个按从小到大排序的数组a和b,将这两个有序数组合并,使合并后的数组仍有序 (从小到大)