追星者
子供のころにもう一度上映したら、私たちは必ず先に笑って、そして声をあげて泣いて、最後に涙を流して、微笑んで寝ます。

题目描述

排序是一种必不可少的工具,生活工作中随处可见排序的应用。例如,平日我们整理文档的时候难免要按序号排序,现在用选择排序方法来解决问题。选择排序的方法是,将大小为N的数组分成S和U两个部分,代表已经排序和未排序的部分。每次操作均从U中挑选一个最小元素,跟U中的第一个元素交换,随后将U中的第一个元素归入S中。即,每次操作结束后S将增加一个元素,U将减少一个元素。做完(N-1)次操作即可完成整个选择排序。如此实用的方法,大家动手尝试下吧。

输入格式

可能有多个测试输入,第一行给出总共的测试输入的个数。

对于每个测试输入,第一行包含一个正整数N,第二行包含一个大小为N的无序数组(0<N<1000)。

输出格式

输出每次数组做选择排序得到的结果,共计(N-1)行数据。数据之间用一个空格隔开,行末不能有多余的空格。

样例输入

1
5
2 5 4 1 3

样例输出

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

代码部分

#include<iostream>
using namespace std;
int main()
{	int N;
    int n;
    int t;
    cin >> N;    
	while(N and scanf("%d", &t) != EOF){
        cin >> n;
        int arr[n];
        for(int i=0;i<n;i++){
            cin >> arr[i];
        }
        for (int i = 0; i < n-1; i++) {
		int min = i;
		for (int j = i; j < n; j++) {
			if (arr[min] > arr[j]) {
				min = j;
			}
		}
		if (min != i) {
			swap(arr[i], arr[min]);
		for (int k = 0; k < n; k++)
	{
        if(k==(n-1))cout << arr[k];
		else cout << arr[k] << " ";
	}
	    cout << endl;
	}
        }
        N--;
      }
    }    
posted on 2021-11-17 16:07  Star_chaser  阅读(61)  评论(0)    收藏  举报