懒羊羊的作业:看过国产动画片的同学都知道,懒羊羊是一只非常懒的羊,整天除了吃就是睡,根本没有时间做作业。明天就是周一了,村长慢羊羊留的作业:把 n 个整数从大到小排序,它还没开始写...

题面描述

看过国产动画片的同学都知道,懒羊羊是一只非常懒的羊,整天除了吃就是睡,根本没有时间做作业。明天就是周一了,村长慢羊羊留的作业:把 n
个整数从大到小排序,它还没开始写,真是一件让羊悲伤的事呀。但是,懒羊羊又是一只相当“机智”的羊,它发现村长年纪大了,这么多作业根本判不过来,只会检查作业的开头和结尾。所以懒羊羊想出了一个办法:把最大的数和第一个数交换,再把最小的数与最后一个数交换,其他的数位置不变。按这种方法得到的整数数列就可以瞒过村长啦。但是即使这样,懒羊羊也懒得去做,所以它来求助爱编程的你们啦。

输入数据

第一行为 T ,表示有 T 组数据。接下来 T 行,每行的第一个数为一个整数 n ,表示该行随后有 n 个整数,为要进行上述操作的 n
个数(保证这 n 个数中最大的数只有一个,最小的数也只有一个, T<=50;2<=n<=10000 )。

输出数据

对每组测试数据输出单独的一行结果,形如 ” Case #x: ans ” ,表示第 x 组的结果为 ans 。

样例输入

2
5 2 3 1 5 4
6 9 11 2 0 7 2

样例输出

Case #1: 5 3 4 2 1
Case #2: 11 9 2 2 7 0

心得:只取最值,并非完整排序

T = int(input())    
for t1 in range(T) :      
    ns = [int(item) for item in input().split()]      
    n = ns[0]      
    high = 1      
    for i in range(2, n+1):
        if(ns[i]>ns[high]):              
            high = i      
    temp = ns[high]      
    ns[high] = ns[1]
    ns[1] = temp      
    low = n      
    for i in range(2, n):            
        if(ns[i]<ns[low]):              
            low = i      
    temp = ns[low]      
    ns[low] = ns[n]      
    ns[n] = temp      
    print("Case #%d: %s" % (t1 + 1, " ".join(str(i) for i in ns[1:]))) 

猜你喜欢

转载自blog.csdn.net/tianxiefenxiang/article/details/107456997