【实训4-5】冒泡排序法
(总分11)


 【实训目的】实例详解(一):冒泡排序法  

【第 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(陈海云) : 返回首页