基礎練習数列ソートC【ブルーブリッジカップ】


リソース制限時間制限:1.0 sメモリ制限:512.0 MB
問題は、長さnの数列を指定し、この数列を小さい順に並べます.1<=n<=200入力フォーマットの第1の動作は整数nである.2行目はn個の整数を含み、ソートされる数であり、各整数の絶対値は10000未満である.出力フォーマットは1行を出力し、ソート後の数列を小さい順に出力します.サンプル入力5 8 3 6 4 9
サンプル出力3 4 6 8 9
  • は一般的なテーマ空間が大きいと感じて、時間の制限は比較的に明らかで、急速にソートします.
  • 関数呼び出しの配列は元の配列に影響を及ぼし、
    void sort(int *s);
    void sort(int s[]);
    void sort(int s[10]);
    
  • の3つの場合が等価である.
  • クイックソートの説明:https://www.runoob.com/w3cnote/quick-sort.html

  • 問題:
    #include 
    void quick_sort(int s[], int l, int r){
    	if(l<r){
    		int i = l, j = r, x = s[l];
    		while(i<j){
    			while(i<j && s[j]>=x)
    				j--;
    			s[i] = s[j];
    			while(i<j && s[i]<x)
    				i++;
    			s[j--] = s[i];
    			}
    		s[i] = x;
    		quick_sort(s, l, i-1);
    		quick_sort(s, i+1, r);
    	}
    }	
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	int s[n];
    	int i;
    	for(i=0; i<n; i++){
    		scanf("%d",&s[i]);
    	}  
    	quick_sort(s, 0, n-1);         
    	for(i=0; i<n; i++){
    		printf("%d ",s[i]);
    	}	
    	return 0;
     }