|
【实训目的】实例详解(一):冒泡排序法
【第 1 步】实训内容介绍
实训内容介绍
冒泡排序法
实训结束
【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。
【第 2 步】冒泡排序法
1、本实训使用项目 cpp4 中的 cpp4code.cpp 源代码文件,如果不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到 cpp4code 中:
#include <iostream.h>
#define N 5
// 冒泡排序法
void main(void) {
int a[N];
cout << "冒泡排序法:输入 " << N << " 个整数: "; // 输入 N 个整数
for (int i = 0; i < N; i++) {
cin >> a[i];
}
// 在这里补写代码
cout << "\n排序结果:" << endl;
for (i = 0; i < N; i++) {
cout << '{' << a[i] << "}\t";
}
cout << endl;
}
补写代码,功能是采用冒泡排序法,实现对数组的排序,并要求输出中间数据,代码见教程75页【例4-5】,运行结果如下:
冒泡法:输入 5 个整数: 7 2 6 5 3
轮次:{0}
第 {0} 次比较 {2} {7} {6} {5} {3}
第 {1} 次比较 {2} {6} {7} {5} {3}
第 {2} 次比较 {2} {6} {5} {7} {3}
第 {3} 次比较 {2} {6} {5} {3} {7}
轮次:{1}
第 {0} 次比较 {2} {6} {5} {3} {7}
第 {1} 次比较 {2} {5} {6} {3} {7}
第 {2} 次比较 {2} {5} {3} {6} {7}
轮次:{2}
第 {0} 次比较 {2} {5} {3} {6} {7}
第 {1} 次比较 {2} {3} {5} {6} {7}
轮次:{3}
第 {0} 次比较 {2} {3} {5} {6} {7}
排序结果:
{2} {3} {5} {6} {7}
Press any key to continue
代码如下:
// 从下一行开始复制。
#include <iostream.h>
#define N 5
// 冒泡排序法
void main(void) {
int a[N];
cout << "冒泡排序法:输入 " << N << " 个整数: "; // 输入 N 个整数
for (int i = 0; i < N; i++) {
cin >> a[i];
}
// 在这里补写代码
for(i=0; i<N-1; i++){
cout << "轮次:{" << i << "}\n";
for(int j=0; j<N-i-1; j++){
if(a[j]>a[j+1]){
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
cout << "第 {" << j << "} 次比较 ";
for(int k=0; k<N; k++){
cout << "{" << a[k] << "}\t";
}
cout << endl;
}
}
cout << "\n排序结果:" << endl;
for (i = 0; i < N; i++) {
cout << '{' << a[i] << "}\t";
}
cout << endl;
}
// 一直复制到上一行结束。
【Jitor 校验第 2 步】 // 复制上面的代码到VC++ 6.0,保存并运行。点击。
【第 3 步】实训总结
本实训通过编写程序,以及对中间结果的观察,理解冒泡排序法。
【Jitor 校验第 3 步】我已阅读实训总结 // 送分题。直接点击。
仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页 |