C++一维数组的排序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三节数值型一维数组的应用
一、数值型一维数组在递推中的应用
【例5-3】斐波拉契数列:前两项为0和1,从第三项开始,各项均为前相邻两项之和:0,1,1,2,3,5,8,11,19,……。写C程序,输出该数列前N项。
【简要分析】显然这是一个典型的递推问题,结合数组,从第三个数开始,其递推公式是:
x[i]=x[i-1]+x[i-2],其中i=2,3, …,N-1。
利用循环结构,用N-S流程图描述的程序逻辑如图5-2所示。
参考源代码:
/* 例5-3,5-3.cpp */
#include
#define N 20
void main()
{
long i, x[N];
x[0] = x[1] = 0; /* 赋初值*/
for ( i = 2; i < N; i++ ) /* 尚剩18项*/
x[i] = x[i - 1] + x[i - 2]; /* 产生各项*/
for ( i = 0; i < N; i++ ) /* 输出数列*/
cout<< "\t" << x[i];
system(“pause”);
}
【思考验证】如果将x数组定义为整型int,程序是否能正常运行?
【模仿训练】某数列前三项为0、1、1,以后各项均为前相邻三项之和,输出该数列前N项。
二、排序
【例5-4】键盘输入N个战士的身高,将其升序排列。
【简要分析】排序是数组的经典应用,现实生活中用得太多,请读者务必掌握。排序的方法很多,《数据结构》中有详细介绍,请读者自己查阅,本例用比较法。