冒泡排序法
步骤
- 两两比较相邻元素 ai 和 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; }

浙公网安备 33010602011771号