2025年冒泡排序法_多态实现

冒泡排序法_多态实现前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 前言 床长人工智能教程 用户从键盘输入 N 然后输入 N 个实数 使用冒泡排序方法对这 N 个素排序 输出排序后的数据 何谓冒泡排序法 1 两两比较相邻素 A I 和 A I 1 I 1 2 N 1 如果 A I A I 1 则交换 A I 和 A I 1 的位置 2 对剩下的 N 1 个素 再两两进行比较

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默:

前言 – 床长人工智能教程

——-

用户从键盘输入N,然后输入N个实数,使用冒泡排序方法对这N个元素排序,输出排序后的数据。

何谓冒泡排序法

(1)两两比较相邻元素A(I)和A(I+1)(I=1,2,…N-1),如果A(I)>A(I+1),则交换A(I)和A(I+1)的位置;

(2)对剩下的N-1个元素,再两两进行比较,按同样规则交换它们的位置,经过N-2次比较,将次最大值交换到A(N-1)的位置;

(3)如法炮制,经过N-1趟的“冒泡处理”,每趟进行N-i次的比较,全部数列有序。

算法描述

#include //包含输入输出头文件
#include
using namespace std; //指定名字空间
int main()
{ //主函数
int a[100]; //定义数组,大小100
int N; //元素的实际个数
int i = 0, j = 0; //循环变量,并进行初始化
cin >> N; //输入元素个数
//-------输入数据-----------
for (i = 0; i cin >> a[i]; //循环体只有一行
//-------排序---------------
for (i = 0; i for (j = 0; 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个元素
cout << a[i] << " "; //输出a[i], 后加空格,不换行
}
cout << endl; //所有元素输出完之后才换行
return 0; //函数返回
}

模板总结

void bubbleSort(int a[], int n)
{
for(int i = n - 1; i > 0; i--)
for(int j = 0; j < i; j++)
if(a[j] > a[j+1])
swap(a[j], a[j+1]);
}

思路拓展

①修改程序,用户不再先输入元素个数,而是在输入数据时以99999为结束符,如输入:20 13 01 30 23 52 15 34 99999结果为:1 13 15 20 23 30 34 52②当元素较多时,在一行中输出所有元素是不现实的。虽然系统会自动换行,但不整齐。请修改程序,使每行输出5个元素。

编程小号
上一篇 2025-08-28 12:11
下一篇 2025-02-09 14:40

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/114859.html