/*分治典型应用 快速排序*/
/*分治典型应用 快速排序*/ #include <cstdio> #include <iostream> #include <algorithm> using namespace std ; #define maxn 600 double num[maxn] ; void swap(double &a , double &b){ double temp = a ; a = b ; b = temp ; } void Sort(int le , int re){ if(le >= re){ return; } double k = num[le] ; int i = le , j = re ; while(i!=j){ while(i<j && num[j] >k){ --j ; } swap(num[i] , num[j]) ; while(i<j && num[i] <= k){ ++ i ; } swap(num[i] , num[j]) ; }//处理结束后 num[i] == k Sort(le , i-1) ; Sort(i+1 , re) ; } int main(){ int n ; while(~scanf("%d" , &n)){ for(int i=0 ; i<n ; i++){ scanf("%lf" , &num[i]) ; } Sort(0 , n-1) ; for(int i=0 ; i<n ; i++){ printf("%.2f " , num[i]) ; } } return 0 ; }