#Q1019. 选择排序

选择排序

题目背景

排序是算法的一大门类,其中包含:选择排序、冒泡排序、插入排序、快速排序、堆排序、桶排序等等。

我们首先来实现选择排序。

题目描述

选择排序

输入要求

输入包含两行。

第一行输入一个正整数NN,表示即将要输入NN个数;

第二行输入NN个数,每两个数用一个空格隔开。

输出要求

输出NN行,每一行输出选择排序(从小到大)每一轮的排序结果,每两个数用一个空格隔开。


样例

5
1 3 2 5 4
1 3 2 5 4
1 2 3 5 4
1 2 3 5 4
1 2 3 4 5
1 2 3 4 5

解释

样例

1 3 2 4 5
1 2 3 5 4
1 2 3 5 4
1 2 3 4 5
1 2 3 4 5

说明

选择排序每一轮都会选出目前待排序区域最值放置在合适的位置,我们从小到大选择排序的话,每一轮会选出最小值。

第一轮:经过比较,最小值是1,但是1已放置在最小的位置上,不需要数据交换;

第二轮:经过比较,最小值是2,此时2不在合适的位置上,所以需要数据交换;

第三轮:经过比较,最小值是3,本身3不在合适的位置上,但是经过第二轮,被交换到了合适的位置,所以不需要数据交换;

第四轮:类似第二轮;

第五轮:类似第三轮。

代码输入格式建议

'''
假设数据是: 
5
1 3 2 5 4
'''
n = int(input())
lst = [int(x) for x in input().split()]

# 编写你的代码