黑马程序员技术交流社区

标题: 这个怎么解? [打印本页]

作者: 纸飞机的天空    时间: 2015-4-19 19:03
标题: 这个怎么解?
main()
{
    int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;
    for(k=0;k<4;k++)
        if(a1[i]<a2[j])    a[k]=a1[i++];
        else               a[k]=a2[j++];
    for(k=0;k<4;k++)    printf("%d",a[k]);
}

作者: wslinke    时间: 2015-4-19 22:34
  1. int main(void)
  2. {
  3.     int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;
  4.     for(k=0;k<4;k++)
  5.         
  6.         //取出取出a1[i]与a2[j]之中较小的那个数,放入a[k]中
  7.         //并且将对应取出数组的索引+1,避免重复提取
  8.         if(a1[i]<a2[j])
  9.             a[k]=a1[i++];//第一次a[0]=a1[0],第三次,a[2]=a1[1];
  10.    
  11.         else
  12.             a[k]=a2[j++];//第二次,a[1]=a2[0],第四次,a[3]=a2[1]
  13.     for(k=0;k<4;k++)
  14.         printf("%d",a[k]);
  15.     //输出为1234
  16. }
复制代码

作者: x331275955    时间: 2015-4-19 22:42
wslinke 发表于 2015-4-19 22:34

请问这个是那个冒泡排序么?
作者: 逆流瞅瞅    时间: 2015-4-19 22:48
楼上正解
作者: wslinke    时间: 2015-4-19 22:50
x331275955 发表于 2015-4-19 22:42
请问这个是那个冒泡排序么?

不是```````````
作者: x331275955    时间: 2015-4-19 22:52
wslinke 发表于 2015-4-19 22:50
不是```````````

那麻烦问下,这个和冒泡有什么区别?哪个好用点?看这个好像挺简单。。。
作者: wslinke    时间: 2015-4-19 22:53
x331275955 发表于 2015-4-19 22:52
那麻烦问下,这个和冒泡有什么区别?哪个好用点?看这个好像挺简单。。。 ...

这个只是每次都比较两个数组里没取出来的第一个元素大小而已
冒泡是把1个数组里的元素按升序或降序重新排列




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2