学习IOS一周时间,每天面对着电脑,刚开始学c语言,觉得蛮简单,但是昨天遇到的一个问题琢磨了一晚上都没有琢磨出来,今天看到一个关于二路归并的算法,正合适,另外附上经典C语言排序方法,冒泡排序;
先说说二路归并方法的定义:就是把一定组合顺序组成的一个数组两项两项分成若干组,按同样的规律进行排序,然后排序之后再对两组两组合并排序,同样用相同的规律排序,以此递推,最终完成一个数组的排序。当然在对两组两组结合的时候,可以将合并的组分别进行冒泡排序,最终得出所想要的顺序。
拿我遇到的难题做个例子:对两个整形数组排序,将排序结果放入到一个大的数组中。题目其实用冒泡会很简单,但是有一点点要求就是不能用冒泡排序,二路归并其实是一个很好的选择;
首先我们可以确定的是我们需要三个数组,并且第三个数组容量必须足够容纳前两个数组;那我们就先定义三个数组;
int a1[5] = {0}; //就拿5个做例子吧
int a2[5] = {0};
int a3[10] = {0};
接下来就先让两个数组随机产生:(当然还要有适当的输出语句)
第一组随机数: a1[5]:
printf("随机产生五个数a1[5]: ");