冒泡排序是我们开始学习编程时候就已经学会的算法,今天来将之前学过的算法重写一下。
index是我们下一次循环所到的尾部。
#include<bits/stdc++.h>
using namespace std;
void so(int a[])
{
int index = 10;
int j;
int co = 1;
bool flag = true;
for(int i = 0; i < 10; i++) cin >> a[i];
while(flag){
j = -1;
for(int i = 0; i < index; i++){
if(a[i] > a[i + 1]) {
swap(a[i],a[i + 1]);
j = i + 1;
cout << "第" << co++ << "次排序:";
for(int i = 0; i < 10; i++) cout << a[i] << " " ;
puts("");
}
if(i == index - 1) index = j;
}
if(j == -1){
flag = !flag;
cout << "排序完成";
}
}
}
int main()
{
int a[100];
so(a);
return 0;
}