一、问题及代码
/*
* 文件名称:关于数组合并的项目
* 作 者:李伟
* 完成日期: 2016 年 5 月 25 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:
* 问题描述: 用循环和数组来编程,冒泡法来给数组排序
* 程序输出: 合并后的数组
* 问题分析:
* 算法设计:
*/
#include<iostream>
using namespace std;
int main()
{
int a[5]={1,3,8,9,10},b[5]={2,3,4,5,6},c[10],i,t,j;
cout<<"a数组为:";
for(i=0;i<5;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"b数组为:";
for(i=0;i<5;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
for(i=0;i<5;i++)
{
c[i]=a[i];
}
for(i=0;i<5;i++)
{
c[i+5]=b[i];
}
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
{
if(c[j]>c[j+1])
{
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
}
cout<<"合并后的数组为:";
for(i=0;i<10;i++)
cout<<c[i]<<" ";
cout<<endl;
return 0;
}
二、运行结果
三、心得体会
本次实验的数组合并比较简单,数组排序要用“冒泡法”,要理解“冒泡法”的原理。
四、知识点总结
冒泡法原理:是将相邻两个数进行比较,把小数调到前面,大数逐渐“下沉”,如此进行一轮后 ,就会把最大的数互换到最后,再进行一轮,则会把第二大的数排在倒数第二的位置上,进行N-1轮后,整个数列即可排好。在这种排序过程中,小数如同气泡一样逐层上浮,而大数逐个下沉。
for(i=0;i<9;i++) //10个数要交换9趟
for(j=0;j<9-i;j++) //每趟相邻两个数交换次数为9-i
if(a[j]>a[j+1]) //相邻两数按指定的升序排列
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}