冒泡排序题(代码)

输入10个整数,按从大到小排序,使用冒泡排序法。

效果如图:

 

 

 

问题分析:

 

读题注意点:

 

1. 输入的是整数//整型变量

 

2. 按从大到小排序

 

注意:

 

1.在内层循环中应该进行10-i 次比较,但是实际上的i 是从0开始的,但是之前的分析中i 的实际意义是步数,也就是从1开始的,所以在循环中是10-i-1=9-i 次。

 

2.使用数组进行排序

 

3.注意元素输入和输出数组的方式

 

思路:

 

1.使用双重循环语句  //外层控制循环多少趟,内层控制每一趟循环的次数

 

2.假设n个数,那么就要进行n-1 步,第i 步中则需要n-i 次比较

 

内层循环前后两元素比较if (n[j] <n[j + 1]) 

//从大到小冒泡排序
#include <iostream>
using namespace std;
 
int main() 
{
    int n[10];
    int i, j;
    int temp;                                 //用于缓存需要交换的数字
    cout << "请输入10个整数:" << endl;
    for (i = 0; i < 10; i++) 
    {
        cin >> n[i];
    }
    cout << "---------------------------------" <<endl;
    cout << "排序前:" << endl; 
    for(i=0; i<10; i++)
    {
        cout << n[i] << "   ";  //此处再添加一个循环输出输入的数据 
    }
    cout << "\n";
    for (i = 0; i < 9;i++) //共进行9步
    {                  
        for (j = 0; j < 9 - i;j++) //在每一步进行10-i次两两比较
        {      
            if (n[j] < n[j + 1]) 
            {
                temp = n[j];
                n[j] = n[j + 1];
                n[j + 1] = temp;
            }
        }
    }
    cout << "排序后:" << endl;
    for (i = 0; i < 10; i++)
    {
        cout << n[i] << "   ";
    }
    cout << endl;
    
    
    return 0;
} 

 

posted @ 2020-09-19 11:14  顾小朝  阅读(345)  评论(0编辑  收藏  举报