【D-OJ】输出起泡排序算法每趟的结果 题目编号:197

输入描述

第一行输入待排序记录个数 第二行输入待排序序列

输出描述

输出每一趟排序的结果,每趟占一行,当排序中间过程序列相同时,不输出,请参看输出样例

输入样例

10 17 5 22 87 8 10 1 23 68 2

输出样例

5 17 22 8 10 1 23 68 2 87 5 17 8 10 1 22 23 2 68 87 5 8 10 1 17 22 2 23 68 87 5 8 1 10 17 2 22 23 68 87 5 1 8 10 2 17 22 23 68 87 1 5 8 2 10 17 22 23 68 87 1 5 2 8 10 17 22 23 68 87 1 2 5 8 10 17 22 23 68 87

#include <iostream>
using namespace std;
int main ()
{
          
   
	int a;
	cin >> a;
	int b[a];
	for (int i = 0; i < a;i++)
	{
          
   
		cin >> b[i];
	}
	int exchange = a-1;
	int bound = 0;
	while (exchange != 0)
	{
          
   
		bound = exchange;
		exchange = 0;
		for (int j = 0;j < bound;j++)
		{
          
   
			if (b[j] > b[j+1])
			{
          
   
				int temp = b[j];
				b[j] = b[j+1];
				b[j+1] = temp;
				exchange = j;
			}
		}
		if (exchange != 1)
		{
          
   
			for (int i = 0;i < a;i++)
			{
          
   
				cout<< b[i] << " ";
			}
		}	
	}
	return 0;
}
经验分享 程序员 微信小程序 职场和发展