冒泡排序法

步骤

  • 两两比较相邻元素 a 和 ai+1 (i = 1, 2, ···, n -1),若ai > ai+1,则交换ai 和 ai+1的位置;
  • 对剩下的n - 1个元素,再两两进行比较,按同样规则交换它们的位置,经过n - 2次比较,将最大值交换到 an-1 的位置;
  • 如法炮制,经过n - 1 趟的 ”冒泡处理“ ,每趟进行 n - i 次比较,全部数列有序

设有N个元素,用数组a[i]表示, i = 0, 1, ···, N - 1

①输入N;

②输入a[i], i = 0, 1, ···, N - 1

③对 i = 0, 1, ···, N - 2  //下标,一共N - 1 趟冒泡

④  对 j = 0, 1, ···, N - 2 - i

⑤    若a[j] > a[j + 1],交换

⑥对 i = 0, 1, ···, N - 1,输出a[i]

代码

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double a[100];
    int N;
    int i = 0, j = 0;
    cin >> N; //元素个数
    for( i = 0; i < N; I++)
    {
        cin >> a[i]; //输入数据
    }
    /***排序***/
    for( i = o; i < N - 1; i++)
    {
        for( j = 0; j < N - 1 - i; j++)
        {
            if(a[j] > a[j + 1])
            {
                int tmp;
                tmp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = tmp;
            }
        }
    }
    for( i = 0; i < N; i++)
    {
        cout << a[i] <<" "; //输出
    }
    return 0;
}

 

posted @ 2021-07-31 22:37  白藏i  阅读(50)  评论(0)    收藏  举报